
package client;


import client.inventory.*;
import client.skills.InnerSkillEntry;
import client.skills.Skill;
import client.skills.SkillEntry;
import client.skills.SkillFactory;
import constants.GameConstants;
import constants.ItemConstants;
import constants.JobConstants;
import constants.SkillConstants;
import handling.world.WorldGuildService;
import handling.world.guild.MapleGuild;
import handling.world.guild.MapleGuildSkill;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import server.*;
import server.life.Element;
import tools.Pair;
import tools.Triple;
import tools.data.output.MaplePacketLittleEndianWriter;
import tools.packet.EffectPacket;
import tools.packet.InventoryPacket;

import java.io.Serializable;
import java.util.*;






























 public class PlayerStats implements Serializable {
    /*   33 */   public static final int[] pvpSkills = new int[]{1000007, 2000007, 3000006, 4000010, 5000006, 5010004, 11000006, 12000006, 13000005, 14000006, 15000005, 21000005, 22000002, 23000004, 31000005, 32000012, 33000004, 35000005};
    /*   34 */   private static final Logger log = LogManager.getLogger();
       private static final long serialVersionUID = -679541993413738569L;
    /*   36 */   private static final int[] allJobs = new int[]{0, 10000000, 20000000, 20010000, 20020000, 20030000, 20040000, 20050000, 30000000, 30010000, 30020000, 50000000, 60000000, 60010000, 100000000, 110000000};
    /*   37 */   private final Map<Integer, Integer> setHandling = new HashMap<>();
    /*   38 */   private final Map<Integer, Integer> skillsIncrement = new HashMap<>();
    /*   39 */   private final Map<Integer, Integer> damageIncrease = new HashMap<>();
    /*   40 */   private final EnumMap<Element, Integer> elemBoosts = new EnumMap<>(Element.class);
    /*   41 */   private final List<Triple<Integer, String, Integer>> psdSkills = new ArrayList<>();
    /*   42 */   private final List<Equip> durabilityHandling = new ArrayList<>();
    /*   43 */   private final List<Equip> equipLevelHandling = new ArrayList<>();
    /*   44 */   private final List<Equip> sealedEquipHandling = new ArrayList<>();



    /*   48 */   private final Map<Integer, Integer> add_skill_duration = new HashMap<>();
    /*   49 */   private final Map<Integer, Integer> add_skill_attackCount = new HashMap<>();

    /*   51 */   private final Map<Integer, Map<Integer, Integer>> add_skill_targetPlus = new HashMap<>();  //增加攻击怪物的数量
    /*   52 */   private final Map<Integer, Integer> add_skill_bossDamageRate = new HashMap<>();
    /*   53 */   private final Map<Integer, Map<Integer, Integer>> add_skill_5thDamageRate = new HashMap<>();
    /*   54 */   private final Map<Integer, Integer> add_skill_dotTime = new HashMap<>();

    /*   56 */   private final  Map<Integer, Integer> add_skill_prop = new HashMap<>();
    /*   57 */   private final Map<Integer, Integer> add_skill_coolTimeR = new HashMap<>();
    public short str;
    public short dex;
    public short luk;
    public short int_;
    public int hp;
    public int maxhp;
    public int mp;
    public int maxmp;
    public transient boolean equippedWelcomeBackRing;
    public transient boolean hasClone;
    public transient boolean hasPartyBonus;
    public transient boolean Berserk;
    public transient boolean canFish;
    public transient boolean canFishVIP;
    public transient double expBuff;
    public transient double dropBuff;
    public transient double mesoBuff;
    public transient double cashBuff;
    public transient double mesoGuard;
    public transient double mesoGuardMeso;
    public transient double expMod;
    public transient double pickupRange;
    public transient double incRewardProp;
    public transient int recoverHP;
    public transient int recoverMP;
    public transient int mpconReduce;
    public transient int mpconPercent;
    public transient int incMesoProp;
    public transient int reduceCooltime;
    public transient int coolTimeR;
    public transient int suddenDeathR;
    /*   58 */   private final Map<Integer, Integer> add_skill_ignoreMobpdpR = new HashMap<>();
    public transient int expLossReduceR;
    public transient int DAMreflect;
    public transient int DAMreflect_rate;
    public transient int ignoreDAMr;
    public transient int ignoreDAMr_rate;
    public transient int ignoreDAM;
    public transient int ignoreDAM_rate;
    public transient int mpRestore;
    public transient int hpRecover;
    public transient int hpRecoverProp;
    public transient int hpRecover_Percent;
    public transient int mpRecover;
    public transient int mpRecoverProp;
    public transient int RecoveryUP;
    public transient int BuffUP;
    public transient int RecoveryUP_Skill;
    public transient int BuffUP_Skill;
    public transient int incAllskill;
    public transient int combatOrders;
    public transient int BuffUP_Summon;
    public transient int dodgeChance;
    public transient int equipmentBonusExp;
    public transient int dropMod;
    public transient int cashMod;
    public transient int ASR;
    public transient int TER;
       public transient int pickRate;
       public transient int decreaseDebuff;
       public transient int equippedFairy;
       public transient int equippedSummon;
       public transient int pvpDamage;
    /*   64 */   public transient int hpRecoverTime = 0;
    public transient int mpRecoverTime = 0;
    public transient int dot;
    public transient int dotTime;
    public transient int pvpRank;
    public transient int pvpExp;
    public transient int trueMastery;
    public transient int damX;
    public transient int incMaxDamage;
    public transient int incMaxDF;
    public transient int gauge_x;
    public transient int mpconMaxPercent;
    public transient int onHitHpRecoveryR;
    public transient int onHitMpRecoveryR;
    public transient int wdef;
    public transient int mdef;
    public transient int levelBonus;
    public transient int questBonus;
    public transient int harvestingTool;
    public transient int defRange;
    public transient int speed;
    public transient int speedMax;
    public transient int jump;
    public transient short passive_sharpeye_rate;
    public transient short passive_sharpeye_max_percent;
    public transient short passive_sharpeye_min_percent;
    public transient int stanceProp;
       public transient int percent_wdef;
       public transient int percent_mdef;
       public transient int percent_hp;
       public transient int percent_mp;
       public transient int percent_str;
       public transient int percent_dex;
       public transient int percent_int;
       public transient int percent_luk;
       public transient int percent_acc;
       public transient int percent_atk;
       public transient int percent_matk;
       public transient int percent_ignore_mob_def_rate;
       public transient double percent_damage;
       public transient double percent_damage_rate;
       public transient int percent_boss_damage_rate;
       public transient int ignore_mob_damage_rate;
       public transient int reduceDamageRate;
       public transient int def;
       public transient int element_ice;
       public transient int element_fire;
       public transient int element_light;
       public transient int element_psn;
       public transient int raidenCount;
       public transient int raidenPorp;
       private transient float shouldHealHP;
       private transient float shouldHealMP;
       private transient byte passive_mastery;
       private transient int localstr;
       private transient int localdex;
       private transient int localluk;
       private transient int localint_;
       private transient int localmaxhp;
       private transient int localmaxmp;
       private transient int addmaxhp;
       private transient int addmaxmp;
       private transient int indieStrFX;
       private transient int indieDexFX;
       private transient int indieLukFX;
       private transient int indieIntFX;
       private transient int magic;
       private transient int watk;
       private transient int accuracy;
       private transient float localmaxbasedamage;
       private transient float localmaxbasepvpdamage;
       private transient float localmaxbasepvpdamageL;
       private transient int efftype;
       private transient int finalSkillID;
       private transient int hpFX;
       private transient int arc;
    /*  114 */   private transient ArrayList<Integer> summondskills = new ArrayList<>();
       private transient int firstsummond;



    public static int getSkillByJob(int skillId, int job) {
        /*  118 */
        if (JobConstants.is骑士团(job))
            /*  119 */ return skillId + 10000000;
        /*  120 */
        if (JobConstants.is战神(job))
            /*  121 */ return skillId + 20000000;
        /*  122 */
        if (JobConstants.is龙神(job))
            /*  123 */ return skillId + 20010000;
        /*  124 */
        if (JobConstants.is双弩精灵(job))
            /*  125 */ return skillId + 20020000;
        /*  126 */
        if (JobConstants.is幻影(job))
            /*  127 */ return skillId + 20030000;
        /*  128 */
        if (JobConstants.is夜光(job))
            /*  129 */ return skillId + 20040000;
        /*  130 */
        if (JobConstants.is隐月(job))
            /*  131 */ return skillId + 20050000;
        /*  132 */
        if (JobConstants.is反抗者(job))
            /*  133 */ return skillId + 30000000;
        /*  134 */
        if (JobConstants.is恶魔猎手(job) || JobConstants.is恶魔复仇者(job))
            /*  135 */ return skillId + 30010000;
        /*  136 */
        if (JobConstants.is尖兵(job))
            /*  137 */ return skillId + 30020000;
        /*  138 */
        if (JobConstants.is米哈尔(job))
            /*  139 */ return skillId + 50000000;
        /*  140 */
        if (JobConstants.is狂龙战士(job))
            /*  141 */ return skillId + 60000000;
        /*  142 */
        if (JobConstants.is爆莉萌天使(job))
            /*  143 */ return skillId + 60010000;
        /*  144 */
        if (JobConstants.is魔链隐士(job))
            /*  145 */ return skillId + 60020000;
        /*  146 */
        if (JobConstants.is神之子(job))
            /*  147 */ return skillId + 100000000;
        /*  148 */
        if (JobConstants.is林之灵(job))
            /*  149 */ return skillId + 110000000;
        /*  150 */
        if (JobConstants.is剑豪(job))
            /*  151 */ return skillId + 40010000;
        /*  152 */
        if (JobConstants.is阴阳师(job))
            /*  153 */ return skillId + 40020000;
        /*  154 */
        if (JobConstants.is超能力者(job))
            /*  155 */ return skillId + 140000000;
        /*  156 */
        if (JobConstants.is圣晶使徒(job))
            /*  157 */ return skillId + 150000000;
        /*  158 */
        if (JobConstants.is影魂异人(job))
            /*  159 */ return skillId + 150010000;
        /*  160 */
        if (JobConstants.is虎影(job)) {
            /*  161 */
            return skillId + 160000000;

        }
        /*  163 */
        return skillId;

    }



    public void recalcLocalStats(MapleCharacter chra) {
        /*  167 */
        recalcLocalStats(false, chra);

    }



    private void resetLocalStats(int job) {
        /*  171 */
        this.accuracy = 0;
        /*  172 */
        this.wdef = 0;
        /*  173 */
        this.mdef = 0;
        /*  174 */
        this.damX = 0;
        /*  175 */
        this.addmaxhp = 0;
        /*  176 */
        this.addmaxmp = 0;
        /*  177 */
        this.localdex = getDex();
        /*  178 */
        this.localint_ = getInt();
        /*  179 */
        this.localstr = getStr();
        /*  180 */
        this.localluk = getLuk();
        /*  181 */
        this.indieDexFX = 0;
        /*  182 */
        this.indieIntFX = 0;
        /*  183 */
        this.indieStrFX = 0;
        /*  184 */
        this.indieLukFX = 0;
        /*  185 */
        this.speed = 100;
        /*  186 */
        this.jump = 100;
        /*  187 */
        this.pickupRange = 0.0D;
        /*  188 */
        this.decreaseDebuff = 0;
        /*  189 */
        this.ASR = 0;
        /*  190 */
        this.TER = 0;
        /*  191 */
        this.dot = 0;
        /*  192 */
        this.questBonus = 1;
        /*  193 */
        this.dotTime = 0;
        /*  194 */
        this.trueMastery = 0;
        /*  195 */
        this.stanceProp = 0;
        /*  196 */
        this.percent_wdef = 0;
        /*  197 */
        this.percent_mdef = 0;
        /*  198 */
        this.percent_hp = 0;
        /*  199 */
        this.percent_mp = 0;
        /*  200 */
        this.percent_str = 0;
        /*  201 */
        this.percent_dex = 0;
        /*  202 */
        this.percent_int = 0;
        /*  203 */
        this.percent_luk = 0;
        /*  204 */
        this.percent_acc = 0;
        /*  205 */
        this.percent_atk = 0;
        /*  206 */
        this.percent_matk = 0;
        /*  207 */
        this.percent_ignore_mob_def_rate = 0;
        /*  208 */
        this.passive_sharpeye_rate = 5;
        /*  209 */
        this.passive_sharpeye_min_percent = 20;
        /*  210 */
        this.passive_sharpeye_max_percent = 50;
        /*  211 */
        this.percent_damage_rate = 100.0D;
        /*  212 */
        this.percent_boss_damage_rate = 100;
        /*  213 */
        this.magic = 0;
        /*  214 */
        this.watk = 0;
        /*  215 */
        this.dodgeChance = 0;
        /*  216 */
        this.pvpDamage = 0;
        /*  217 */
        this.mesoGuard = 50.0D;
        /*  218 */
        this.mesoGuardMeso = 0.0D;
        /*  219 */
        this.percent_damage = 0.0D;
        /*  220 */
        this.expBuff = 100.0D;
        /*  221 */
        this.cashBuff = 100.0D;
        /*  222 */
        this.dropBuff = 100.0D;
        /*  223 */
        this.mesoBuff = 100.0D;
        /*  224 */
        this.recoverHP = 0;
        /*  225 */
        this.recoverMP = 0;
        /*  226 */
        this.mpconReduce = 0;
        /*  227 */
        this.mpconPercent = 100;
        /*  228 */
        this.incMesoProp = 0;
        /*  229 */
        this.reduceCooltime = 0;
        /*  230 */
        this.coolTimeR = 0;
        /*  231 */
        this.suddenDeathR = 0;
        /*  232 */
        this.expLossReduceR = 0;
        /*  233 */
        this.incRewardProp = 0.0D;
        /*  234 */
        this.DAMreflect = 0;
        /*  235 */
        this.DAMreflect_rate = 0;
        /*  236 */
        this.ignoreDAMr = 0;
        /*  237 */
        this.ignoreDAMr_rate = 0;
        /*  238 */
        this.ignoreDAM = 0;
        /*  239 */
        this.ignoreDAM_rate = 0;
        /*  240 */
        this.hpRecover = 0;
        /*  241 */
        this.hpRecoverProp = 0;
        /*  242 */
        this.hpRecover_Percent = 0;
        /*  243 */
        this.mpRecover = 0;
        /*  244 */
        this.mpRecoverProp = 0;
        /*  245 */
        this.mpRestore = 0;
        /*  246 */
        this.pickRate = 0;
        /*  247 */
        this.incMaxDamage = 0;
        /*  248 */
        this.equippedWelcomeBackRing = false;
        /*  249 */
        this.equippedFairy = 0;
        /*  250 */
        this.equippedSummon = 0;
        /*  251 */
        this.hasPartyBonus = false;
        /*  252 */
        this.hasClone = false;
        /*  253 */
        this.Berserk = false;
        /*  254 */
        this.canFish = false;
        /*  255 */
        this.canFishVIP = false;
        /*  256 */
        this.equipmentBonusExp = 0;
        /*  257 */
        this.RecoveryUP = 100;
        /*  258 */
        this.BuffUP = 100;
        /*  259 */
        this.RecoveryUP_Skill = 100;
        /*  260 */
        this.BuffUP_Skill = 100;
        /*  261 */
        this.BuffUP_Summon = 100;
        /*  262 */
        this.dropMod = 1;
        /*  263 */
        this.expMod = 1.0D;
        /*  264 */
        this.cashMod = 1;
        /*  265 */
        this.levelBonus = 0;
        /*  266 */
        this.incMaxDF = 0;
        /*  267 */
        this.incAllskill = 0;
        /*  268 */
        this.combatOrders = 0;
        /*  269 */
        this.defRange = isRangedJob(job) ? 200 : 0;
        /*  270 */
        this.durabilityHandling.clear();
        /*  271 */
        this.equipLevelHandling.clear();
        /*  272 */
        this.sealedEquipHandling.clear();
        /*  273 */
        this.skillsIncrement.clear();
        /*  274 */
        this.damageIncrease.clear();
        /*  275 */
        this.setHandling.clear();
        /*  276 */
        this.add_skill_duration.clear();
        /*  277 */
        this.add_skill_attackCount.clear();
        /*  278 */
        this.add_skill_targetPlus.clear();
        /*  279 */
        this.add_skill_dotTime.clear();
        /*  280 */
        this.add_skill_prop.clear();
        /*  281 */
        this.add_skill_coolTimeR.clear();
        /*  282 */
        this.add_skill_ignoreMobpdpR.clear();
        /*  283 */
        this.harvestingTool = 0;
        /*  284 */
        this.element_fire = 100;
        /*  285 */
        this.element_ice = 100;
        /*  286 */
        this.element_light = 100;
        /*  287 */
        this.element_psn = 100;
        /*  288 */
        this.def = 100;
        /*  289 */
        this.raidenCount = 0;
        /*  290 */
        this.raidenPorp = 0;
        /*  291 */
        this.ignore_mob_damage_rate = 0;
        /*  292 */
        this.reduceDamageRate = 0;
        /*  293 */
        this.mpconMaxPercent = 0;

    }



    public void recalcLocalStats(boolean first_login, MapleCharacter chra) {
        /*  297 */
        MapleItemInformationProvider ii = MapleItemInformationProvider.getInstance();
        /*  298 */
        int oldmaxhp = this.localmaxhp;
        /*  299 */
        int localmaxhp_ = getMaxHp();
        /*  300 */
        int localmaxmp_ = getMaxMp();
        /*  301 */
        boolean is阴阳师 = (JobConstants.is阴阳师(chra.getJob()) && chra.getTotalSkillLevel(40020000) > 0);
        /*  302 */
        resetLocalStats(chra.getJob());

        /*  304 */
        for (MapleTraitType t : MapleTraitType.values()) {
            /*  305 */
            chra.getTrait(t).clearLocalExp();

        }

        /*  308 */
        Map<Integer, SkillEntry> sData = new HashMap<>();
        /*  309 */
        for (Item item1 : chra.getInventory(MapleInventoryType.EQUIPPED).newList()) {
            /*  310 */
            Equip equip = (Equip) item1;
            /*  311 */
            if (ItemConstants.isArcaneForce(equip.getItemId())) {
                /*  312 */
                this.arc += equip.getARC();
                /*  313 */
                this.localstr = (int) (this.localstr + equip.getStr());
                /*  314 */
                this.localdex = (int) (this.localdex + equip.getDex());
                /*  315 */
                this.localint_ = (int) (this.localint_ + equip.getInt());
                /*  316 */
                this.localluk = (int) (this.localluk + equip.getLuk());
                /*  317 */
                this.watk += equip.getWatk();
                /*  318 */
                this.magic += equip.getMatk();
                /*  319 */
                this.wdef += equip.getWdef();
                /*  320 */
                this.localmaxhp = (int) (this.localmaxhp + equip.getHp());

                continue;

            }
            /*  323 */
            if (equip.getPosition() == -11 &&
                    /*  324 */         ItemConstants.isMagicWeapon(equip.getItemId())) {
                /*  325 */
                Map<String, Integer> eqstat = ii.getItemBaseInfo(equip.getItemId());
                /*  326 */
                if (eqstat != null) {
                    /*  327 */
                    if (eqstat.containsKey("incRMAF")) {
                        /*  328 */
                        this.element_fire = ((Integer) eqstat.get("incRMAF")).intValue();

                    }
                    /*  330 */
                    if (eqstat.containsKey("incRMAI")) {
                        /*  331 */
                        this.element_ice = ((Integer) eqstat.get("incRMAI")).intValue();

                    }
                    /*  333 */
                    if (eqstat.containsKey("incRMAL")) {
                        /*  334 */
                        this.element_light = ((Integer) eqstat.get("incRMAL")).intValue();

                    }
                    /*  336 */
                    if (eqstat.containsKey("incRMAS")) {
                        /*  337 */
                        this.element_psn = ((Integer) eqstat.get("incRMAS")).intValue();

                    }
                    /*  339 */
                    if (eqstat.containsKey("elemDefault")) {
                        /*  340 */
                        this.def = ((Integer) eqstat.get("elemDefault")).intValue();

                    }

                }

            }

            /*  345 */
            if (equip.getItemId() / 10000 == 166 && equip.getAndroid() != null && chra.getAndroid() == null) {
                /*  346 */
                chra.setAndroid(equip.getAndroid());

            }
            /*  348 */
            chra.getTrait(MapleTraitType.craft).addLocalExp(equip.getHands());
            /*  349 */
            this.accuracy += equip.getAcc();
            /*  350 */
            localmaxhp_ += equip.getHp();
            /*  351 */
            localmaxmp_ += equip.getMp();
            /*  352 */
            this.localdex += equip.getDex();
            /*  353 */
            this.localint_ += equip.getInt();
            /*  354 */
            this.localstr += equip.getStr();
            /*  355 */
            this.localluk += equip.getLuk();
            /*  356 */
            this.magic += equip.getMatk();
            /*  357 */
            this.watk += equip.getWatk();
            /*  358 */
            this.wdef += equip.getWdef();
            /*  359 */
            this.mdef += equip.getMdef();
            /*  360 */
            this.speed += equip.getSpeed();
            /*  361 */
            this.jump += equip.getJump();
            /*  362 */
            this.pvpDamage += equip.getPVPDamage();
            /*  363 */
            this.percent_boss_damage_rate += equip.getBossDamage();
            /*  364 */
            this.percent_ignore_mob_def_rate += equip.getIgnorePDR();
            /*  365 */
            this.percent_damage_rate *= (equip.getTotalDamage() + 100.0D) / 100.0D;
            /*  366 */
            this.percent_str += equip.getAllStat();
            /*  367 */
            this.percent_dex += equip.getAllStat();
            /*  368 */
            this.percent_int += equip.getAllStat();
            /*  369 */
            this.percent_luk += equip.getAllStat();
            /*  370 */
            switch (equip.getItemId()) {

                case 1112918:
                    /*  372 */
                    this.equippedWelcomeBackRing = true;

                    break;

                case 1122017:
                    /*  375 */
                    this.equippedFairy = 10;

                    break;

                case 1122158:
                    /*  378 */
                    this.equippedFairy = 5;

                    break;

                case 1112585:
                    /*  381 */
                    this.equippedSummon = 1085;

                    break;

                case 1112586:
                    /*  384 */
                    this.equippedSummon = 1087;

                    break;

                case 1112663:
                    /*  387 */
                    this.equippedSummon = 1179;

                    break;

                default:
                    /*  390 */
                    for (int eb_bonus : GameConstants.Equipments_Bonus) {
                        /*  391 */
                        if (equip.getItemId() == eb_bonus) {
                            /*  392 */
                            this.equipmentBonusExp += GameConstants.Equipment_Bonus_EXP(eb_bonus);

                            break;

                        }

                    }

                    break;

            }

            /*  399 */
            int equipSummonedSkillID = SkillConstants.getEquipSummonedSkillID(equip.getItemId());
            /*  400 */
            if (equipSummonedSkillID > 0 &&
                    /*  401 */         !this.summondskills.contains(Integer.valueOf(equipSummonedSkillID))) {
                /*  402 */
                this.summondskills.add(Integer.valueOf(equipSummonedSkillID));

            }



            /*  407 */
            if (equip.getItemId() / 1000 == 1099) {
                /*  408 */
                this.incMaxDF += equip.getMp();

            }
            /*  410 */
            this.percent_hp += ii.getItemIncMHPr(equip.getItemId());
            /*  411 */
            this.percent_mp += ii.getItemIncMMPr(equip.getItemId());
            /*  412 */
            this.percent_boss_damage_rate += equip.getBossDamage();
            /*  413 */
            this.percent_ignore_mob_def_rate += equip.getIgnorePDR();
            /*  414 */
            this.percent_damage_rate += equip.getTotalDamage();

            /*  416 */
            Integer setId = ii.getSetItemID(equip.getItemId());
            /*  417 */
            if (setId != null && setId.intValue() > 0) {
                /*  418 */
                int value = 1;
                /*  419 */
                if (this.setHandling.containsKey(setId)) {
                    /*  420 */
                    value += ((Integer) this.setHandling.get(setId)).intValue();

                }
                /*  422 */
                this.setHandling.put(setId, Integer.valueOf(value));


                /*  425 */
                Pair<Integer, Integer> setix = handleEquipSetStats(ii, chra, first_login, sData, setId.intValue(), value);
                /*  426 */
                if (setix != null) {
                    /*  427 */
                    localmaxhp_ += ((Integer) setix.getLeft()).intValue();
                    /*  428 */
                    localmaxmp_ += ((Integer) setix.getRight()).intValue();

                }

            }
            /*  431 */
            if (equip.getIncSkill() > 0 && ii.getEquipSkills(equip.getItemId()) != null) {
                /*  432 */
                for (Iterator<Integer> iterator = ii.getEquipSkills(equip.getItemId()).iterator(); iterator.hasNext(); ) {
                    int skillId = ((Integer) iterator.next()).intValue();
                    /*  433 */
                    Skill skil = SkillFactory.getSkill(skillId);
                    /*  434 */
                    if (skil != null && skil.canBeLearnedBy(chra.getJob())) {
                        /*  435 */
                        int value = 1;
                        /*  436 */
                        if (this.skillsIncrement.get(Integer.valueOf(skil.getId())) != null) {
                            /*  437 */
                            value += ((Integer) this.skillsIncrement.get(Integer.valueOf(skil.getId()))).intValue();

                        }
                        /*  439 */
                        this.skillsIncrement.put(Integer.valueOf(skil.getId()), Integer.valueOf(value));

                    }
                }


            }
            /*  443 */
            Pair<Integer, Integer> ix = handleEquipAdditions(ii, chra, first_login, sData, equip.getItemId());
            /*  444 */
            if (ix != null) {
                /*  445 */
                localmaxhp_ += ((Integer) ix.getLeft()).intValue();
                /*  446 */
                localmaxmp_ += ((Integer) ix.getRight()).intValue();

            }
            /*  448 */
            if (equip.getState(false) >= 17) {
                /*  449 */
                int[] potentials = {equip.getPotential1(), equip.getPotential2(), equip.getPotential3(), equip.getPotential4(), equip.getPotential5(), equip.getPotential6()};
                /*  450 */
                for (int j : potentials) {
                    /*  451 */
                    if (j > 0) {
                        /*  452 */
                        int itemReqLevel = ii.getReqLevel(equip.getItemId());

                        /*  454 */
                        List<StructItemOption> potentialInfo = ii.getPotentialInfo(j);
                        /*  455 */
                        StructItemOption soc = potentialInfo.get(Math.min(potentialInfo.size() - 1, (itemReqLevel - 1) / 10));
                        /*  456 */
                        if (soc != null) {
                            /*  457 */
                            localmaxhp_ += soc.get("incMHP");
                            /*  458 */
                            localmaxmp_ += soc.get("incMMP");
                            /*  459 */
                            handleItemOption(soc, chra, first_login, sData);

                        }

                    }

                }

            }
            /*  464 */
            if (equip.getSocketState() >= 19) {
                /*  465 */
                int[] sockets = {equip.getSocket1(), equip.getSocket2(), equip.getSocket3()};
                /*  466 */
                for (int j : sockets) {
                    /*  467 */
                    if (j > 0) {
                        /*  468 */
                        StructItemOption soc = ii.getSocketInfo(j);
                        /*  469 */
                        if (soc != null) {
                            /*  470 */
                            localmaxhp_ += soc.get("incMHP");
                            /*  471 */
                            localmaxmp_ += soc.get("incMMP");
                            /*  472 */
                            handleItemOption(soc, chra, first_login, sData);

                        }

                    }

                }

            }
            /*  477 */
            if (equip.getDurability() > 0) {
                /*  478 */
                this.durabilityHandling.add(equip);

            }
            /*  480 */
            if (GameConstants.getMaxLevel(equip.getItemId()) > 0 && ((GameConstants.getStatFromWeapon(equip.getItemId()) == null) ? (equip.getEquipLevel() <= GameConstants.getMaxLevel(equip.getItemId())) : (equip.getEquipLevel() < GameConstants.getMaxLevel(equip.getItemId())))) {
                /*  481 */
                this.equipLevelHandling.add(equip);

            }
            /*  483 */
            if (equip.isSealedEquip()) {
                /*  484 */
                this.sealedEquipHandling.add(equip);

            }

        }

        /*  488 */
        String rank = chra.getOneInfo(18771, "rank");
        /*  489 */
        if (rank != null) {
            /*  490 */
            chra.getMapleUnion().setRank(Integer.valueOf(rank).intValue());
            /*  491 */
            chra.getMapleUnion().update();

        }

        /*  494 */
        if (chra.getSummonedFamiliar() != null) {
            /*  495 */
            MonsterFamiliar summonedFamiliar = chra.getSummonedFamiliar().getFamiliar();
            /*  496 */
            for (int j = 0; j < 3; j++) {
                /*  497 */
                int option = summonedFamiliar.getOption(j);
                /*  498 */
                if (option > 0) {
                    /*  499 */
                    StructItemOption soc = ((LinkedList<StructItemOption>) ii.getFamiliar_option().get(Integer.valueOf(option))).get(Math.max(summonedFamiliar.getGrade(), 0));
                    /*  500 */
                    if (soc != null) {
                        /*  501 */
                        localmaxhp_ += soc.get("incMHP");
                        /*  502 */
                        localmaxmp_ += soc.get("incMMP");
                        /*  503 */
                        handleItemOption(soc, chra, first_login, sData);

                    }

                }

            }

        }

        /*  509 */
        Map<Integer, Integer> addPetSkills = new HashMap<>();
        /*  510 */
        for (MaplePet pet : chra.getPets()) {
            /*  511 */
            if (pet == null || !pet.getSummoned() || pet.getAddSkill() <= 0) {

                continue;

            }
            /*  514 */
            int petskillid = pet.getAddSkill() - 1;
            /*  515 */
            if (!addPetSkills.containsKey(Integer.valueOf(petskillid))) {
                /*  516 */
                addPetSkills.put(Integer.valueOf(petskillid), Integer.valueOf(1));

                continue;

            }
            /*  519 */
            addPetSkills.replace(Integer.valueOf(petskillid), Integer.valueOf(((Integer) addPetSkills.get(Integer.valueOf(petskillid))).intValue() + 1));

        }
        /*  521 */
        for (Map.Entry<Integer, Integer> entry3 : addPetSkills.entrySet()) {
            /*  522 */
            for (int j = 0; j < ((Integer) entry3.getValue()).intValue(); j++) {
                /*  523 */
                StructPetCapsule structPetCapsule = MapleItemInformationProvider.getInstance().getPetCapsule(((Integer) entry3.getKey()).intValue()).get(j);
                /*  524 */
                if (structPetCapsule != null) {


                    /*  527 */
                    this.percent_hp += structPetCapsule.get("incMHPr");
                    /*  528 */
                    if (is阴阳师) {
                        /*  529 */
                        this.percent_hp += structPetCapsule.get("incMMPr");

                    } else {
                        /*  531 */
                        this.percent_mp += structPetCapsule.get("incMMPr");

                    }
                    /*  533 */
                    this.watk += structPetCapsule.get("incPAD");
                    /*  534 */
                    this.magic += structPetCapsule.get("incMAD");
                    /*  535 */
                    this.passive_sharpeye_rate = (short) (this.passive_sharpeye_rate + structPetCapsule.get("incCr"));

                    /*  537 */
                    this.percent_boss_damage_rate += structPetCapsule.get("incDAMr");
                    /*  538 */
                    this.percent_ignore_mob_def_rate = (int) (this.percent_ignore_mob_def_rate + (1.0D - this.percent_ignore_mob_def_rate) * structPetCapsule.get("ignoreTargetDEF") / 100.0D);

                }

            }

        }





        /*  547 */
        handleProfessionTool(chra);
        /*  548 */
        for (Item item : chra.getInventory(MapleInventoryType.CASH).newList()) {
            /*  549 */
            if (item.getItemId() / 100000 == 52) {
                /*  550 */
                if (this.expMod < 3.0D && item.getItemId() == 5211060) {
                    /*  551 */
                    this.expMod = 3.0D;

                    continue;

                }
                /*  554 */
                if (this.expMod < 2.0D && (item.getItemId() == 5210000 || item.getItemId() == 5210001 || item.getItemId() == 5210002 || item.getItemId() == 5210003 || item.getItemId() == 5210004 || item.getItemId() == 5210005 || item.getItemId() == 5210006 || item.getItemId() == 5211047)) {
                    /*  555 */
                    this.expMod = 2.0D;

                    continue;

                }
                /*  558 */
                if (this.expMod < 1.5D && (item.getItemId() == 5211063 || item.getItemId() == 5211064 || item.getItemId() == 5211065 || item.getItemId() == 5211066 || item.getItemId() == 5211069 || item.getItemId() == 5211070)) {
                    /*  559 */
                    this.expMod = 1.5D;

                    continue;

                }
                /*  562 */
                if (this.expMod < 1.2D && (item.getItemId() == 5211071 || item.getItemId() == 5211072 || item.getItemId() == 5211073 || item.getItemId() == 5211074 || item.getItemId() == 5211075 || item.getItemId() == 5211076 || item.getItemId() == 5211067)) {
                    /*  563 */
                    this.expMod = 1.2D;

                }







                continue;

            }





            /*  578 */
            if (this.dropMod == 1 && item.getItemId() / 10000 == 536) {
                /*  579 */
                if (item.getItemId() == 5360000 || item.getItemId() == 5360014 || item.getItemId() == 5360015 || item.getItemId() == 5360016) {
                    /*  580 */
                    this.dropMod = 2;

                }





                continue;

            }




            /*  592 */
            if (item.getItemId() == 5650000) {
                /*  593 */
                this.hasPartyBonus = true;
                continue;
                /*  594 */
            }
            if (item.getItemId() == 5590001) {
                /*  595 */
                this.levelBonus = 10;
                continue;
                /*  596 */
            }
            if (this.levelBonus == 0 && item.getItemId() == 5590000) {
                /*  597 */
                this.levelBonus = 5;
                continue;
                /*  598 */
            }
            if (item.getItemId() == 5710000) {
                /*  599 */
                this.questBonus = 2;
                continue;
                /*  600 */
            }
            if (item.getItemId() == 5340000) {
                /*  601 */
                this.canFish = true;
                continue;
                /*  602 */
            }
            if (item.getItemId() == 5340001) {
                /*  603 */
                this.canFish = true;
                /*  604 */
                this.canFishVIP = true;

            }

        }
        /*  607 */
        for (Item item : chra.getInventory(MapleInventoryType.ETC).list()) {
            /*  608 */
            switch (item.getItemId()) {

                case 4030003:

                case 4030004:

                    break;

            }







        }
        /*  620 */
        if (first_login && chra.getLevel() >= 30) {

            /*  622 */
            int[] skills = {1085, 1087, 1179};
            /*  623 */
            for (int skillId : skills) {
                /*  624 */
                if (chra.isGM()) {
                    /*  625 */
                    for (int allJob : allJobs) {
                        /*  626 */
                        sData.put(Integer.valueOf(skillId + allJob), new SkillEntry(-1, (byte) 0, -1L));

                    }

                } else {
                    /*  629 */
                    sData.put(Integer.valueOf(getSkillByJob(skillId, chra.getJob())), new SkillEntry(-1, (byte) 0, -1L));

                }

            }

        }
        /*  633 */
        if (this.equippedSummon > 0) {
            /*  634 */
            this.equippedSummon = getSkillByJob(this.equippedSummon, chra.getJob());

        }



        /*  639 */
        if (chra.getCoreAura() != null) {
            /*  640 */
            this.watk += chra.getCoreAura().getWatk();
            /*  641 */
            this.magic += chra.getCoreAura().getMagic();
            /*  642 */
            this.localstr += chra.getCoreAura().getStr();
            /*  643 */
            this.localdex += chra.getCoreAura().getDex();
            /*  644 */
            this.localint_ += chra.getCoreAura().getInt();
            /*  645 */
            this.localluk += chra.getCoreAura().getLuk();

        }



        /*  650 */
        handlePassiveSkills(chra);




        /*  655 */
        handleBuffStats(chra);
        /*  656 */
        Integer buff = chra.getBuffedValue(MapleBuffStat.增强_MAXHP);
        /*  657 */
        if (buff != null) {
            /*  658 */
            localmaxhp_ += buff.intValue();

        }
        /*  660 */
        buff = chra.getBuffedValue(MapleBuffStat.增强_MAXMP);
        /*  661 */
        if (buff != null) {
            /*  662 */
            localmaxmp_ += buff.intValue();

        }
        /*  664 */
        buff = chra.getBuffedValue(MapleBuffStat.增加最大HP);
        /*  665 */
        if (buff != null) {
            /*  666 */
            localmaxhp_ += buff.intValue();

        }
        /*  668 */
        buff = chra.getBuffedValue(MapleBuffStat.增加最大MP);
        /*  669 */
        if (buff != null) {
            /*  670 */
            localmaxmp_ += buff.intValue();

        }
        /*  672 */
        MapleStatEffect eff = chra.getStatForBuff(MapleBuffStat.进阶祝福);
        /*  673 */
        if (eff != null) {
            /*  674 */
            this.watk += eff.getX();
            /*  675 */
            this.magic += eff.getY();
            /*  676 */
            this.accuracy += eff.getV();
            /*  677 */
            this.mpconReduce += eff.getMPConReduce();

        }





        /*  684 */
        Skill bx = SkillFactory.getSkill(5210012);
        /*  685 */
        int bof = chra.getTotalSkillLevel(bx);
        /*  686 */
        if (bof > 0 && bx != null) {
            /*  687 */
            eff = bx.getEffect(bof);
            /*  688 */
            this.percent_wdef += eff.getWDEFRate();
            /*  689 */
            this.percent_mdef += eff.getMDEFRate();
            /*  690 */
            localmaxhp_ += eff.getMaxHpX();
            /*  691 */
            localmaxmp_ += eff.getMaxMpX();

        }
        /*  693 */
        bx = SkillFactory.getSkill(5220019);
        /*  694 */
        bof = chra.getTotalSkillLevel(bx);
        /*  695 */
        if (bof > 0 && bx != null) {
            /*  696 */
            eff = bx.getEffect(bof);
            /*  697 */
            localmaxhp_ += eff.getMaxHpX();

        }







        /*  706 */
        bx = SkillFactory.getSkill(65110005);
        /*  707 */
        bof = chra.getTotalSkillLevel(bx);
        /*  708 */
        if (bof > 0 && bx != null) {
            /*  709 */
            eff = bx.getEffect(bof);
            /*  710 */
            this.wdef += eff.getWdefX();
            /*  711 */
            this.mdef += eff.getMdefX();
            /*  712 */
            localmaxhp_ += eff.getMaxHpX();

        }
        /*  714 */
        bx = SkillFactory.getSkill(65001002);
        /*  715 */
        bof = chra.getTotalSkillLevel(bx);
        /*  716 */
        if (bof > 0 && bx != null) {
            /*  717 */
            eff = bx.getEffect(bof);
            /*  718 */
            localmaxhp_ += eff.getMaxHpX();

        }
        /*  720 */
        bx = SkillFactory.getSkill(31200006);
        /*  721 */
        bof = chra.getTotalSkillLevel(bx);
        /*  722 */
        if (bof > 0 && bx != null) {
            /*  723 */
            eff = bx.getEffect(bof);
            /*  724 */
            localmaxhp_ += eff.getMaxHpX();

        }
        /*  726 */
        bx = SkillFactory.getSkill(11110024);
        /*  727 */
        bof = chra.getTotalSkillLevel(bx);
        /*  728 */
        if (bof > 0 && bx != null) {
            /*  729 */
            eff = bx.getEffect(bof);
            /*  730 */
            localmaxhp_ += eff.getMaxHpX();

        }



        /*  735 */
        if (chra.getGuildId() > 0) {
            /*  736 */
            MapleGuild g = WorldGuildService.getInstance().getGuild(chra.getGuildId());
            /*  737 */
            if (g != null && g.getSkills().size() > 0) {
                /*  738 */
                long now = System.currentTimeMillis();
                /*  739 */
                for (MapleGuildSkill gs : g.getSkills()) {
                    /*  740 */
                    Skill skill = SkillFactory.getSkill(gs.skillID);
                    /*  741 */
                    if (skill != null && gs.timestamp > now && gs.activator.length() > 0) {
                        /*  742 */
                        MapleStatEffect e = skill.getEffect(gs.level);
                        /*  743 */
                        this.passive_sharpeye_rate = (short) (this.passive_sharpeye_rate + e.getCritical());
                        /*  744 */
                        this.watk += e.getAttackX();
                        /*  745 */
                        this.magic += e.getMagicX();
                        /*  746 */
                        this.expBuff *= (e.getEXPRate() + 100.0D) / 100.0D;
                        /*  747 */
                        this.dodgeChance += e.getER();
                        /*  748 */
                        this.percent_wdef += e.getWDEFRate();
                        /*  749 */
                        this.percent_mdef += e.getMDEFRate();

                    }

                }

            }

        }



        /*  757 */
        List<Integer> cardSkills = new LinkedList<>();
        /*  758 */
        for (Pair<Integer, Integer> ix : chra.getCharacterCard().getCardEffects()) {
            /*  759 */
            Skill skill = SkillFactory.getSkill(((Integer) ix.getLeft()).intValue());
            /*  760 */
            if (skill == null) {

                continue;

            }
            /*  763 */
            MapleStatEffect cardEff = skill.getEffect(((Integer) ix.getRight()).intValue());
            /*  764 */
            if (cardEff == null || (cardSkills.contains(ix.getLeft()) && ((Integer) ix.getLeft()).intValue() < 71001100)) {

                continue;

            }
            /*  767 */
            cardSkills.add(ix.getLeft());
            /*  768 */
            this.percent_wdef += cardEff.getWDEFRate();
            /*  769 */
            this.damX = (int) (this.damX + (cardEff.getLevelToWatkX() * chra.getLevel()) * 0.5D);
            /*  770 */
            this.damX = (int) (this.damX + (cardEff.getLevelToMatkX() * chra.getLevel()) * 0.5D);
            /*  771 */
            this.percent_hp += cardEff.getPercentHP();
            /*  772 */
            this.percent_mp += cardEff.getPercentMP();
            /*  773 */
            this.RecoveryUP += cardEff.getMPConsumeEff();
            /*  774 */
            this.percent_acc += cardEff.getPercentAcc();
            /*  775 */
            this.passive_sharpeye_rate = (short) (this.passive_sharpeye_rate + cardEff.getCritical());
            /*  776 */
            this.jump += cardEff.getPsdJump();
            /*  777 */
            this.speed += cardEff.getPsdSpeed();
            /*  778 */
            this.dodgeChance += cardEff.getPercentAvoid();
            /*  779 */
            this.damX += cardEff.getLevelToDamageX() * chra.getLevel();
            /*  780 */
            this.BuffUP_Summon += cardEff.getSummonTimeInc();
            /*  781 */
            this.expLossReduceR += cardEff.getEXPLossRate();
            /*  782 */
            this.ASR += cardEff.getASRRate();
            /*  783 */
            this.expBuff *= (cardEff.getExpBuff() + 100.0D) / 100.0D;

            /*  785 */
            this.suddenDeathR = (int) (this.suddenDeathR + cardEff.getSuddenDeathR() * 0.5D);
            /*  786 */
            this.BuffUP_Skill += cardEff.getBuffTimeRate();


            /*  789 */
            this.coolTimeR += cardEff.getCooltimeReduceR();
            /*  790 */
            this.incMesoProp += cardEff.getMesoAcquisition();
            /*  791 */
            this.damX = (int) (this.damX + Math.floor(((cardEff.getHpToDamageX() * oldmaxhp) / 100.0F)));
            /*  792 */
            this.damX = (int) (this.damX + Math.floor(((cardEff.getMpToDamageX() * oldmaxhp) / 100.0F)));

            /*  794 */
            this.passive_sharpeye_max_percent = (short) (this.passive_sharpeye_max_percent + cardEff.getCriticalMax());
            /*  795 */
            this.percent_ignore_mob_def_rate += cardEff.getIgnoreMob();
            /*  796 */
            this.localstr += cardEff.getStrX();
            /*  797 */
            this.localdex += cardEff.getDexX();
            /*  798 */
            this.localint_ += cardEff.getIntX();
            /*  799 */
            this.localluk += cardEff.getLukX();
            /*  800 */
            this.indieStrFX += cardEff.getStrFX();
            /*  801 */
            this.indieDexFX += cardEff.getDexFX();
            /*  802 */
            this.indieIntFX += cardEff.getIntFX();
            /*  803 */
            this.indieLukFX += cardEff.getLukFX();
            /*  804 */
            localmaxhp_ += cardEff.getMaxHpX();
            /*  805 */
            localmaxmp_ += cardEff.getMaxMpX();
            /*  806 */
            this.watk += cardEff.getAttackX();
            /*  807 */
            this.magic += cardEff.getMagicX();
            /*  808 */
            this.percent_boss_damage_rate += cardEff.getBossDamage();

        }
        /*  810 */
        cardSkills.clear();




        /*  815 */
        List<Integer> unionSkills = new LinkedList<>();
        /*  816 */
        if (chra.getMapleUnion().getRank() > 0) {
            /*  817 */
            for (Map.Entry<Integer, Integer> entry : chra.getMapleUnion().getSkills().entrySet()) {
                /*  818 */
                MapleStatEffect cardEff = SkillFactory.getSkill(((Integer) entry.getKey()).intValue()).getEffect(((Integer) entry.getValue()).intValue());
                /*  819 */
                if (cardEff == null || (unionSkills.contains(entry.getKey()) && ((Integer) entry.getKey()).intValue() < 71001100)) {

                    return;

                }
                /*  822 */
                unionSkills.add(entry.getKey());



                /*  826 */
                this.percent_wdef += cardEff.getWDEFRate();
                /*  827 */
                this.damX = (int) (this.damX + (cardEff.getLevelToWatkX() * chra.getLevel()) * 0.5D);
                /*  828 */
                this.damX = (int) (this.damX + (cardEff.getLevelToMatkX() * chra.getLevel()) * 0.5D);
                /*  829 */
                this.percent_hp += cardEff.getPercentHP();
                /*  830 */
                this.percent_mp += cardEff.getPercentMP();
                /*  831 */
                this.RecoveryUP += cardEff.getMPConsumeEff();
                /*  832 */
                this.percent_acc += cardEff.getPercentAcc();
                /*  833 */
                this.passive_sharpeye_rate = (short) (this.passive_sharpeye_rate + cardEff.getCritical());
                /*  834 */
                this.jump += cardEff.getPsdJump();
                /*  835 */
                this.speed += cardEff.getPsdSpeed();
                /*  836 */
                this.dodgeChance += cardEff.getPercentAvoid();
                /*  837 */
                this.damX += cardEff.getLevelToDamageX() * chra.getLevel();
                /*  838 */
                this.BuffUP_Summon += cardEff.getSummonTimeInc();
                /*  839 */
                this.expLossReduceR += cardEff.getEXPLossRate();
                /*  840 */
                this.ASR += cardEff.getASRRate();
                /*  841 */
                this.expBuff *= (cardEff.getExpBuff() + 100.0D) / 100.0D;
                /*  842 */
                this.hpRecoverProp = 0;
                /*  843 */
                this.onHitHpRecoveryR += cardEff.getOnHitHpRecoveryR();
                /*  844 */
                this.suddenDeathR = (int) (this.suddenDeathR + cardEff.getSuddenDeathR() * 0.5D);
                /*  845 */
                this.BuffUP_Skill += cardEff.getBuffTimeRate();
                /*  846 */
                this.ignore_mob_damage_rate += cardEff.getIgnoreMobDamR();
                /*  847 */
                this.coolTimeR += cardEff.getCooltimeReduceR();
                /*  848 */
                this.incMesoProp += cardEff.getMesoAcquisition();
                /*  849 */
                this.damX = (int) (this.damX + Math.floor(((cardEff.getHpToDamageX() * oldmaxhp) / 100.0F)));
                /*  850 */
                this.damX = (int) (this.damX + Math.floor(((cardEff.getMpToDamageX() * oldmaxhp) / 100.0F)));
                /*  851 */
                this.passive_sharpeye_min_percent = (short) (this.passive_sharpeye_min_percent + cardEff.getCriticalMin());
                /*  852 */
                this.passive_sharpeye_max_percent = (short) (this.passive_sharpeye_max_percent + cardEff.getCriticalMax());
                /*  853 */
                this.percent_ignore_mob_def_rate += cardEff.getIgnoreMob();
                /*  854 */
                this.localstr += cardEff.getStrX();
                /*  855 */
                this.localdex += cardEff.getDexX();
                /*  856 */
                this.localint_ += cardEff.getIntX();
                /*  857 */
                this.localluk += cardEff.getLukX();

                /*  859 */
                this.addmaxhp += cardEff.getHpFX();
                /*  860 */
                this.indieStrFX += cardEff.getStrFX();
                /*  861 */
                this.indieDexFX += cardEff.getDexFX();
                /*  862 */
                this.indieIntFX += cardEff.getIntFX();
                /*  863 */
                this.indieLukFX += cardEff.getLukFX();
                /*  864 */
                localmaxhp_ += cardEff.getMaxHpX();
                /*  865 */
                localmaxmp_ += cardEff.getMaxMpX();
                /*  866 */
                this.watk += cardEff.getPadX();
                /*  867 */
                this.magic += cardEff.getMagicX();
                /*  868 */
                this.percent_boss_damage_rate += cardEff.getBossDamage();

            }

            /*  871 */
            int[] indexs = chra.getMapleUnion().getIndexs();
            /*  872 */
            for (int j = 0; j < indexs.length; j++) {
                /*  873 */
                String oneInfo = chra.getOneInfo(18791, String.valueOf(j));
                /*  874 */
                int n16 = indexs[j];
                /*  875 */
                if (oneInfo != null && n16 > 0) {
                    /*  876 */
                    switch (Integer.valueOf(oneInfo).intValue()) {

                        case 0:
                            /*  878 */
                            this.localstr += n16 * 5;

                            break;


                        case 1:
                            /*  882 */
                            this.localdex += n16 * 5;

                            break;


                        case 2:
                            /*  886 */
                            this.localint_ += n16 * 5;

                            break;


                        case 3:
                            /*  890 */
                            this.localluk += n16 * 5;

                            break;


                        case 4:
                            /*  894 */
                            this.watk += n16;

                            break;


                        case 5:
                            /*  898 */
                            this.magic += n16;

                            break;


                        case 6:
                            /*  902 */
                            localmaxhp_ += n16 * 250;

                            break;


                        case 7:
                            /*  906 */
                            localmaxmp_ += n16 * 250;

                            break;


                        case 8:
                            /*  910 */
                            this.passive_sharpeye_min_percent = (short) (this.passive_sharpeye_min_percent + n16);

                            break;


                        case 9:
                            /*  914 */
                            this.ASR += n16;

                            break;






                        case 11:
                            /*  922 */
                            this.passive_sharpeye_rate = (short) (this.passive_sharpeye_rate + n16);

                            break;


                        case 12:
                            /*  926 */
                            this.percent_boss_damage_rate += n16;

                            break;


                        case 13:
                            /*  930 */
                            this.stanceProp += n16;

                            break;


                        case 14:
                            /*  934 */
                            this.BuffUP_Skill += n16;

                            break;


                        case 15:
                            /*  938 */
                            this.ignore_mob_damage_rate += n16;

                            break;

                    }





                }

            }

        }
        /*  948 */
        for (int i = 0; i < 3; i++) {
            /*  949 */
            InnerSkillEntry innerSkill = chra.getInnerSkills()[i];
            /*  950 */
            if (innerSkill != null) {


                /*  953 */
                MapleStatEffect InnerEffect = SkillFactory.getSkill(innerSkill.getSkillId()).getEffect(innerSkill.getSkillLevel());
                /*  954 */
                if (InnerEffect != null)

                     {
                    /*  957 */
                    this.wdef += InnerEffect.getWdefX();
                    /*  958 */
                    this.mdef += InnerEffect.getWdefX();
                    /*  959 */
                    this.percent_wdef += InnerEffect.getWDEFRate();
                    /*  960 */
                    this.percent_mdef += InnerEffect.getMDEFRate();
                    /*  961 */
                    this.percent_hp += InnerEffect.getPercentHP();
                    /*  962 */
                    this.percent_mp += InnerEffect.getPercentMP();
                    /*  963 */
                    this.accuracy += InnerEffect.getAccX();
                    /*  964 */
                    this.dodgeChance += InnerEffect.getPercentAvoid();
                    /*  965 */
                    this.passive_sharpeye_rate = (short) (this.passive_sharpeye_rate + InnerEffect.getCritical());
                    /*  966 */
                    this.jump += InnerEffect.getPsdJump();
                    /*  967 */
                    this.speed += InnerEffect.getPsdSpeed();
                    /*  968 */
                    this.indieStrFX += InnerEffect.getStrFX();
                    /*  969 */
                    this.indieDexFX += InnerEffect.getDexFX();
                    /*  970 */
                    this.indieIntFX += InnerEffect.getIntFX();
                    /*  971 */
                    this.indieLukFX += InnerEffect.getLukFX();
                    /*  972 */
                    localmaxhp_ += InnerEffect.getMaxHpX();
                    /*  973 */
                    localmaxmp_ += InnerEffect.getMaxMpX();
                    /*  974 */
                    this.watk += InnerEffect.getAttackX();
                    /*  975 */
                    this.magic += InnerEffect.getMagicX();
                    /*  976 */
                    this.BuffUP_Skill += InnerEffect.getBuffTimeRate();
                    /*  977 */
                    if (InnerEffect.getDexToStr() > 0) {
                        /*  978 */
                        this.indieStrFX = (int) (this.indieStrFX + Math.floor(((getDex() * InnerEffect.getDexToStr()) / 100.0F)));

                    }
                    /*  980 */
                    if (InnerEffect.getStrToDex() > 0) {
                        /*  981 */
                        this.indieDexFX = (int) (this.indieDexFX + Math.floor(((getStr() * InnerEffect.getStrToDex()) / 100.0F)));

                    }
                    /*  983 */
                    if (InnerEffect.getIntToLuk() > 0) {
                        /*  984 */
                        this.indieLukFX = (int) (this.indieLukFX + Math.floor(((getInt() * InnerEffect.getIntToLuk()) / 100.0F)));

                    }
                    /*  986 */
                    if (InnerEffect.getLukToDex() > 0) {
                        /*  987 */
                        this.indieDexFX = (int) (this.indieDexFX + Math.floor(((getLuk() * InnerEffect.getLukToDex()) / 100.0F)));

                    }
                    /*  989 */
                    if (InnerEffect.getLevelToWatk() > 0) {
                        /*  990 */
                        this.watk = (int) (this.watk + Math.floor((chra.getLevel() / InnerEffect.getLevelToWatk())));

                    }
                    /*  992 */
                    if (InnerEffect.getLevelToMatk() > 0) {
                        /*  993 */
                        this.magic = (int) (this.magic + Math.floor((chra.getLevel() / InnerEffect.getLevelToMatk())));

                    }
                    /*  995 */
                    this.percent_boss_damage_rate += InnerEffect.getBossDamage();
                }

            }
            /*  997 */
        }
        if (JobConstants.is尖兵(chra.getJob())) {
            /*  998 */
            double d = chra.getSpecialStat().getPowerCount() / 100.0D;
            /*  999 */
            this.localstr = (int) (this.localstr + d * this.str);
            /* 1000 */
            this.localdex = (int) (this.localdex + d * this.dex);
            /* 1001 */
            this.localluk = (int) (this.localluk + d * this.luk);
            /* 1002 */
            this.localint_ = (int) (this.localint_ + d * this.int_);
            /* 1003 */
            int[] skillIds = {30020234, 36000004, 36100007, 36110007, 36120010};






            /* 1010 */
            for (int j : skillIds) {
                /* 1011 */
                bx = SkillFactory.getSkill(j);
                /* 1012 */
                if (bx != null) {
                    /* 1013 */
                    bof = chra.getSkillLevel(bx);
                    /* 1014 */
                    if (bof > 0) {
                        /* 1015 */
                        eff = bx.getEffect(bof);
                        /* 1016 */
                        if (this.localdex >= eff.getX()) {
                            /* 1017 */
                            this.ASR += eff.getZ();
                            /* 1018 */
                            this.TER += eff.getZ();

                        }
                        /* 1020 */
                        if (this.localluk >= eff.getX()) {
                            /* 1021 */
                            this.dodgeChance += eff.getZ();

                        }
                        /* 1023 */
                        if (this.localstr >= eff.getX() && this.localdex >= eff.getX() && this.localluk >= eff.getX()) {
                            /* 1024 */
                            this.percent_damage_rate += eff.getW();
                            /* 1025 */
                            this.percent_boss_damage_rate += eff.getW();

                        }
                        /* 1027 */
                        this.percent_hp += eff.getS();
                        /* 1028 */
                        this.percent_mp += eff.getS();

                    }

                }

            }

        }
        /* 1033 */
        this.localstr = (int) (this.localstr + Math.floor(((this.localstr * this.percent_str) / 100.0F)) + this.indieStrFX);
        /* 1034 */
        this.localdex = (int) (this.localdex + Math.floor(((this.localdex * this.percent_dex) / 100.0F)) + this.indieDexFX);
        /* 1035 */
        this.localint_ = (int) (this.localint_ + Math.floor(((this.localint_ * this.percent_int) / 100.0F)) + this.indieIntFX);
        /* 1036 */
        this.localluk = (int) (this.localluk + Math.floor(((this.localluk * this.percent_luk) / 100.0F)) + this.indieLukFX);
        /* 1037 */
        if (this.localint_ > this.localdex) {
            /* 1038 */
            this.accuracy = (int) (this.accuracy + Math.floor(this.localint_ * 1.6D + this.localluk * 0.8D + this.localdex * 0.4D));

        } else {
            /* 1040 */
            this.accuracy = (int) (this.accuracy + Math.floor(this.localdex * 1.6D + this.localluk * 0.8D + this.localstr * 0.4D));

        }
        /* 1042 */
        this.watk = (int) (this.watk + Math.floor(((this.watk * this.percent_atk) / 100.0F)));
        /* 1043 */
        this.magic = (int) (this.magic + Math.floor(((this.magic * this.percent_matk) / 100.0F)));
        /* 1044 */
        this.localint_ = (int) (this.localint_ + Math.floor(((this.localint_ * this.percent_matk) / 100.0F)));

        /* 1046 */
        this.wdef = (int) (this.wdef + Math.floor(this.localstr * 1.5D + (this.localdex + this.localluk) * 0.4D));
        /* 1047 */
        this.mdef = (int) (this.mdef + Math.floor(this.localint_ * 1.5D + (this.localdex + this.localluk) * 0.4D));
        /* 1048 */
        this.wdef += chra.getTrait(MapleTraitType.will).getLevel();
        /* 1049 */
        this.mdef += chra.getTrait(MapleTraitType.will).getLevel();
        /* 1050 */
        this.wdef = (int) (this.wdef + Math.min(9999.0D, Math.floor(((this.wdef * this.percent_wdef) / 100.0F))));
        /* 1051 */
        this.mdef = (int) (this.mdef + Math.min(9999.0D, Math.floor(((this.mdef * this.percent_mdef) / 100.0F))));

        /* 1053 */
        calculateFame(chra);
        /* 1054 */
        this.percent_ignore_mob_def_rate += chra.getTrait(MapleTraitType.charisma).getLevel() / 10;
        /* 1055 */
        this.pvpDamage += chra.getTrait(MapleTraitType.charisma).getLevel() / 10;
        /* 1056 */
        this.ASR += chra.getTrait(MapleTraitType.will).getLevel() / 5;

        /* 1058 */
        this.accuracy += chra.getTrait(MapleTraitType.insight).getLevel() * 15 / 10;
        /* 1059 */
        this.accuracy = (int) (this.accuracy + Math.min(9999.0D, Math.floor(((this.accuracy * this.percent_acc) / 100.0F))));


        /* 1062 */
        localmaxhp_ += chra.getTrait(MapleTraitType.will).getLevel() / 5 * 100;
        /* 1063 */
        localmaxhp_ += this.addmaxhp;
        /* 1064 */
        localmaxhp_ = (int) (localmaxhp_ + Math.floor(((this.percent_hp * localmaxhp_) / 100.0F)));
        /* 1065 */
        this.localmaxhp = Math.min(chra.getMaxHpForSever(), Math.abs(Math.max(-chra.getMaxHpForSever(), localmaxhp_)));


        /* 1068 */
        localmaxmp_ += chra.getTrait(MapleTraitType.sense).getLevel() / 5 * 100;
        /* 1069 */
        localmaxmp_ = (int) (localmaxmp_ + Math.floor(((this.percent_mp * localmaxmp_) / 100.0F)));
        /* 1070 */
        localmaxmp_ += this.addmaxmp;
        /* 1071 */
        this.localmaxmp = Math.min(chra.getMaxMpForSever(), Math.abs(Math.max(-chra.getMaxMpForSever(), localmaxmp_)));

        /* 1073 */
        if (chra.getEventInstance() != null && chra.getEventInstance().getName().startsWith("PVP")) {
            /* 1074 */
            this.localmaxhp = Math.min(40000, this.localmaxhp * 3);
            /* 1075 */
            this.localmaxmp = Math.min(20000, this.localmaxmp * 2);

            /* 1077 */
            for (int j : pvpSkills) {
                /* 1078 */
                Skill skil = SkillFactory.getSkill(j);
                /* 1079 */
                if (skil != null && skil.canBeLearnedBy(chra.getJob())) {
                    /* 1080 */
                    sData.put(Integer.valueOf(j), new SkillEntry(1, (byte) 0, -1L));
                    /* 1081 */
                    eff = skil.getEffect(1);
                    /* 1082 */
                    switch (j / 1000000 % 10) {

                        case 1:
                            /* 1084 */
                            if (eff.getX() > 0) {
                                /* 1085 */
                                this.pvpDamage += this.wdef / eff.getX();

                            }

                            break;

                        case 3:
                            /* 1089 */
                            this.hpRecoverProp += eff.getProp();
                            /* 1090 */
                            this.hpRecover += eff.getX();
                            /* 1091 */
                            this.mpRecoverProp += eff.getProp();
                            /* 1092 */
                            this.mpRecover += eff.getX();

                            break;

                        case 5:
                            /* 1095 */
                            this.passive_sharpeye_rate = (short) (this.passive_sharpeye_rate + eff.getProp());
                            /* 1096 */
                            this.passive_sharpeye_max_percent = 100;

                            break;

                    }

                    break;

                }

            }
            /* 1102 */
            eff = chra.getStatForBuff(MapleBuffStat.变身效果);
            /* 1103 */
            if (eff != null && eff.getSourceid() % 10000 == 1105) {
                /* 1104 */
                this.localmaxhp = 500000;
                /* 1105 */
                this.localmaxmp = 500000;

            }

        }



        /* 1111 */
        chra.changeSkillLevel_Skip(sData, false);



        /* 1115 */
        if (JobConstants.is恶魔猎手(chra.getJob())) {
            /* 1116 */
            this.localmaxmp = GameConstants.getMPByJob(chra.getJob());
            /* 1117 */
            this.localmaxmp += this.incMaxDF;
            /* 1118 */
        } else if (JobConstants.is神之子(chra.getJob())) {
            /* 1119 */
            this.localmaxmp = 100;
            /* 1120 */
        } else if (JobConstants.isNotMpJob(chra.getJob())) {
            /* 1121 */
            this.localmaxmp = 10;

        }
        /* 1123 */
        CalcPassive_SharpEye(chra);
        /* 1124 */
        CalcPassive_Mastery(chra);
        /* 1125 */
        recalcPVPRank(chra);
        /* 1126 */
        if (first_login) {
            /* 1127 */
            chra.silentEnforceMaxHpMp();
            /* 1128 */
            relocHeal(chra);

        } else {
            /* 1130 */
            chra.enforceMaxHpMp();

        }
        /* 1132 */
        calculateMaxBaseDamage(Math.max(this.magic, this.watk), this.damX, this.pvpDamage, chra);
        /* 1133 */
        this.trueMastery = Math.min(100, this.trueMastery);
        /* 1134 */
        this.passive_sharpeye_min_percent = (short) Math.min(this.passive_sharpeye_min_percent, this.passive_sharpeye_max_percent);
        /* 1135 */
        if (oldmaxhp != 0 && oldmaxhp != this.localmaxhp) {
            /* 1136 */
            chra.updatePartyMemberHP();
            /* 1137 */
            chra.checkBloodContract();

        }

    }




    public double getDropBuff() {
        /* 1143 */
        if (this.incRewardProp > 100.0D) {
            /* 1144 */
            this.incRewardProp = 100.0D;

        }
        /* 1146 */
        return this.dropBuff + this.incRewardProp;

    }



    public List<Triple<Integer, String, Integer>> getPsdSkills() {
        /* 1150 */
        return this.psdSkills;

    }


    private void handlePassiveSkills(MapleCharacter chra) {
        Skill bx;
        int bof;

        MapleStatEffect eff;

        Item shield;

        double energyrate;

        int buffSourceId;
        /* 1157 */
        if (JobConstants.is骑士团(chra.getJob())) {
            /* 1158 */
            Skill skill = SkillFactory.getSkill(10000074);
            /* 1159 */
            int i = chra.getSkillLevel(skill);
            /* 1160 */
            if (i > 0 && skill != null) {
                /* 1161 */
                MapleStatEffect mapleStatEffect = skill.getEffect(i);
                /* 1162 */
                this.percent_hp += mapleStatEffect.getX();
                /* 1163 */
                this.percent_mp += mapleStatEffect.getX();

            }
            /* 1165 */
            skill = SkillFactory.getSkill(10000246);
            /* 1166 */
            i = chra.getSkillLevel(skill);
            /* 1167 */
            if (i > 0 && skill != null) {
                /* 1168 */
                this.localstr += chra.getLevel() / 2;

            }
            /* 1170 */
            skill = SkillFactory.getSkill(10000247);
            /* 1171 */
            i = chra.getSkillLevel(skill);
            /* 1172 */
            if (i > 0 && skill != null) {
                /* 1173 */
                this.localdex += chra.getLevel() / 2;

            }
            /* 1175 */
            skill = SkillFactory.getSkill(10000248);
            /* 1176 */
            i = chra.getSkillLevel(skill);
            /* 1177 */
            if (i > 0 && skill != null) {
                /* 1178 */
                this.localint_ += chra.getLevel() / 2;

            }
            /* 1180 */
            skill = SkillFactory.getSkill(10000249);
            /* 1181 */
            i = chra.getSkillLevel(skill);
            /* 1182 */
            if (i > 0 && skill != null) {
                /* 1183 */
                this.localluk += chra.getLevel() / 2;

            }

        }
        /* 1186 */
        chra.getSkills().keySet().parallelStream().forEach((skillid) -> {
            Optional.ofNullable(SkillFactory.getSkill(skillid)).ifPresent((skill) -> {
                int skilllevel = chra.getTotalSkillLevel(skillid);
                if (skilllevel > 0) {
                    MapleStatEffect effect = skill.getEffect(skilllevel);
                    Optional.ofNullable(skill.getPsdSkills()).ifPresent((psdSkills) -> {
                        psdSkills.parallelStream().forEach((psdskillid) -> {
                            if (skill.isHyperSkill()) {
                                this.addDamageIncrease(psdskillid, effect.getDAMRate());
                                this.addTargetPlus(psdskillid, skillid, effect.getTargetPlus());
                                this.addBossDamageRate(psdskillid, effect.getBossDamage());
                                this.addCoolTimeReduce(psdskillid, effect.getCooltimeReduceR());
                            } else {
                                if (SkillConstants.isVSkill(skillid)) {
                                    this.addDamageRate5th(psdskillid, skillid, effect.getDAMRate5th());
                                    this.addTargetPlus(psdskillid, skillid, effect.getTargetPlus5th());
                                }

                            }
                        });
                    });
                }

            });
        });






















        /* 1208 */
        switch (chra.getJob()) {

            case 100:

            case 110:

            case 111:

            case 112:

            case 120:

            case 121:

            case 122:

            case 130:

            case 131:

            case 132:
                /* 1219 */
                bx = SkillFactory.getSkill(1000003);
                /* 1220 */
                bof = chra.getTotalSkillLevel(bx);
                /* 1221 */
                if (bof > 0 && bx != null) {
                    /* 1222 */
                    this.percent_hp += bx.getEffect(bof).getPercentHP();

                }
                /* 1224 */
                bx = SkillFactory.getSkill(1000009);
                /* 1225 */
                bof = chra.getTotalSkillLevel(bx);
                /* 1226 */
                if (bof > 0 && bx != null) {
                    /* 1227 */
                    MapleStatEffect mapleStatEffect = bx.getEffect(bof);
                    /* 1228 */
                    this.addmaxhp += mapleStatEffect.getLevelToMaxHp() * chra.getLevel();
                    /* 1229 */
                    this.jump += mapleStatEffect.getPsdJump();
                    /* 1230 */
                    this.speedMax += mapleStatEffect.getSpeedMax();

                }

                break;


            case 200:

            case 210:

            case 211:

            case 212:

            case 220:

            case 221:

            case 222:

            case 230:

            case 231:

            case 232:
                /* 1244 */
                bx = SkillFactory.getSkill(2000006);
                /* 1245 */
                bof = chra.getTotalSkillLevel(bx);
                /* 1246 */
                if (bof > 0 && bx != null) {
                    /* 1247 */
                    MapleStatEffect mapleStatEffect = bx.getEffect(bof);
                    /* 1248 */
                    this.percent_mp += mapleStatEffect.getPercentMP();
                    /* 1249 */
                    this.addmaxmp += mapleStatEffect.getLevelToMaxMp() * chra.getLevel();

                }

                break;


            case 300:

            case 310:

            case 311:

            case 312:

            case 320:

            case 321:

            case 322:
                /* 1260 */
                bx = SkillFactory.getSkill(3000002);
                /* 1261 */
                bof = chra.getTotalSkillLevel(bx);
                /* 1262 */
                if (bof > 0 && bx != null) {
                    /* 1263 */
                    MapleStatEffect mapleStatEffect = bx.getEffect(bof);
                    /* 1264 */
                    this.defRange += mapleStatEffect.getRange();
                    /* 1265 */
                    this.accuracy += mapleStatEffect.getAcc();

                }

                break;


            case 301:

            case 330:

            case 331:

            case 332:
                /* 1273 */
                bx = SkillFactory.getSkill(3010003);
                /* 1274 */
                bof = chra.getTotalSkillLevel(bx);
                /* 1275 */
                if (bof > 0 && bx != null) {
                    /* 1276 */
                    MapleStatEffect mapleStatEffect = bx.getEffect(bof);
                    /* 1277 */
                    this.defRange += mapleStatEffect.getRange();
                    /* 1278 */
                    this.accuracy += mapleStatEffect.getAcc();

                }
                /* 1280 */
                bx = SkillFactory.getSkill(3300007);
                /* 1281 */
                bof = chra.getTotalSkillLevel(bx);
                /* 1282 */
                if (bof > 0 && bx != null) {
                    /* 1283 */
                    MapleStatEffect mapleStatEffect = bx.getEffect(bof);
                    /* 1284 */
                    this.localstr += mapleStatEffect.getStrX();
                    /* 1285 */
                    this.localdex += mapleStatEffect.getDexX();

                }
                /* 1287 */
                bx = SkillFactory.getSkill(3300006);
                /* 1288 */
                bof = chra.getTotalSkillLevel(bx);
                /* 1289 */
                if (bof > 0 && bx != null) {
                    /* 1290 */
                    MapleStatEffect mapleStatEffect = bx.getEffect(bof);
                    /* 1291 */
                    this.watk += mapleStatEffect.getAttackX();
                    /* 1292 */
                    this.trueMastery += mapleStatEffect.getMastery();

                }
                /* 1294 */
                bx = SkillFactory.getSkill(3310008);
                /* 1295 */
                bof = chra.getTotalSkillLevel(bx);
                /* 1296 */
                if (bof > 0 && bx != null) {
                    /* 1297 */
                    MapleStatEffect mapleStatEffect = bx.getEffect(bof);
                    /* 1298 */
                    this.passive_sharpeye_rate = (short) (this.passive_sharpeye_rate + mapleStatEffect.getCritical());
                    /* 1299 */
                    this.percent_damage += mapleStatEffect.getDAMRate();
                    /* 1300 */
                    this.percent_ignore_mob_def_rate += mapleStatEffect.getIgnoreMob();

                }
                /* 1302 */
                bx = SkillFactory.getSkill(3310006);
                /* 1303 */
                bof = chra.getTotalSkillLevel(bx);
                /* 1304 */
                if (bof > 0 && bx != null) {
                    /* 1305 */
                    MapleStatEffect mapleStatEffect = bx.getEffect(bof);
                    /* 1306 */
                    this.percent_hp += mapleStatEffect.getPercentHP();
                    /* 1307 */
                    this.percent_damage += mapleStatEffect.getPercentDamageRate();

                }
                /* 1309 */
                bx = SkillFactory.getSkill(3311009);
                /* 1310 */
                bof = chra.getTotalSkillLevel(bx);
                /* 1311 */
                if (bof > 0 && bx != null) {
                    /* 1312 */
                    MapleStatEffect mapleStatEffect = bx.getEffect(bof);
                    /* 1313 */
                    this.percent_wdef += mapleStatEffect.getWDEFRate();

                }
                /* 1315 */
                bx = SkillFactory.getSkill(3311012);
                /* 1316 */
                bof = chra.getTotalSkillLevel(bx);
                /* 1317 */
                if (bof > 0 && bx != null) {
                    /* 1318 */
                    MapleStatEffect mapleStatEffect = bx.getEffect(bof);
                    /* 1319 */
                    this.ASR += mapleStatEffect.getASRRate();
                    /* 1320 */
                    this.TER += mapleStatEffect.getTERRate();

                }
                /* 1322 */
                bx = SkillFactory.getSkill(3310005);
                /* 1323 */
                bof = chra.getTotalSkillLevel(bx);
                /* 1324 */
                if (bof > 0 && bx != null) {
                    /* 1325 */
                    MapleStatEffect mapleStatEffect = bx.getEffect(bof);
                    /* 1326 */
                    this.dodgeChance += mapleStatEffect.getER();

                }
                /* 1328 */
                bx = SkillFactory.getSkill(3320011);
                /* 1329 */
                bof = chra.getTotalSkillLevel(bx);
                /* 1330 */
                if (bof > 0 && bx != null) {
                    /* 1331 */
                    MapleStatEffect mapleStatEffect = bx.getEffect(bof);
                    /* 1332 */
                    this.localdex += mapleStatEffect.getDexX();

                    /* 1334 */
                    this.ignore_mob_damage_rate += mapleStatEffect.getIgnoreMobDamR();

                }
                /* 1336 */
                bx = SkillFactory.getSkill(3320010);
                /* 1337 */
                bof = chra.getTotalSkillLevel(bx);
                /* 1338 */
                if (bof > 0 && bx != null) {
                    /* 1339 */
                    MapleStatEffect mapleStatEffect = bx.getEffect(bof);
                    /* 1340 */
                    this.watk += mapleStatEffect.getX();
                    /* 1341 */
                    this.trueMastery += mapleStatEffect.getMastery();

                }
                /* 1343 */
                bx = SkillFactory.getSkill(3320009);
                /* 1344 */
                bof = chra.getTotalSkillLevel(bx);
                /* 1345 */
                if (bof > 0 && bx != null) {
                    /* 1346 */
                    MapleStatEffect mapleStatEffect = bx.getEffect(bof);
                    /* 1347 */
                    addDamageIncrease(3301008, mapleStatEffect.getX());
                    /* 1348 */
                    addDamageIncrease(3301009, mapleStatEffect.getX());
                    /* 1349 */
                    addDamageIncrease(3311011, mapleStatEffect.getZ());
                    /* 1350 */
                    addDamageIncrease(3321012, mapleStatEffect.getPercentDamageRate());
                    /* 1351 */
                    addDamageIncrease(3321014, mapleStatEffect.getPercentDamageRate());
                    /* 1352 */
                    addDamageIncrease(3321015, mapleStatEffect.getPercentDamageRate());
                    /* 1353 */
                    addDamageIncrease(3321016, mapleStatEffect.getPercentDamageRate());
                    /* 1354 */
                    addDamageIncrease(3321017, mapleStatEffect.getPercentDamageRate());
                    /* 1355 */
                    addDamageIncrease(3321018, mapleStatEffect.getPercentDamageRate());
                    /* 1356 */
                    addDamageIncrease(3321019, mapleStatEffect.getPercentDamageRate());
                    /* 1357 */
                    addDamageIncrease(3321020, mapleStatEffect.getPercentDamageRate());
                    /* 1358 */
                    addDamageIncrease(3321021, mapleStatEffect.getPercentDamageRate());
                    /* 1359 */
                    addDamageIncrease(3321035, mapleStatEffect.getPercentDamageRate());
                    /* 1360 */
                    addDamageIncrease(3321036, mapleStatEffect.getPercentDamageRate());
                    /* 1361 */
                    addDamageIncrease(3321037, mapleStatEffect.getPercentDamageRate());
                    /* 1362 */
                    addDamageIncrease(3321039, mapleStatEffect.getPercentDamageRate());
                    /* 1363 */
                    addDamageIncrease(3321040, mapleStatEffect.getPercentDamageRate());
                    /* 1364 */
                    addDamageIncrease(400031035, mapleStatEffect.getPercentDamageRate());
                    /* 1365 */
                    addDamageIncrease(400031036, mapleStatEffect.getPercentDamageRate());
                    /* 1366 */
                    addDamageIncrease(400031037, mapleStatEffect.getPercentDamageRate());
                    /* 1367 */
                    addDamageIncrease(400031038, mapleStatEffect.getPercentDamageRate());
                    /* 1368 */
                    addDamageIncrease(400031039, mapleStatEffect.getPercentDamageRate());
                    /* 1369 */
                    addDamageIncrease(400031040, mapleStatEffect.getPercentDamageRate());

                }



                /* 1374 */
                bx = SkillFactory.getSkill(3320025);
                /* 1375 */
                bof = chra.getTotalSkillLevel(bx);
                /* 1376 */
                if (bof > 0 && bx != null) {
                    /* 1377 */
                    MapleStatEffect mapleStatEffect = bx.getEffect(bof);
                    /* 1378 */
                    addBuffDuration(3321022, mapleStatEffect.getDuration());

                }

                /* 1381 */
                bx = SkillFactory.getSkill(3320030);
                /* 1382 */
                bof = chra.getTotalSkillLevel(bx);
                /* 1383 */
                if (bof > 0 && bx != null) {
                    /* 1384 */
                    MapleStatEffect mapleStatEffect = bx.getEffect(bof);
                    /* 1385 */
                    addAttackCount(3320002, mapleStatEffect.getAttackCount());
                    /* 1386 */
                    addAttackCount(3321003, mapleStatEffect.getAttackCount());
                    /* 1387 */
                    addAttackCount(3321004, mapleStatEffect.getAttackCount());
                    /* 1388 */
                    addAttackCount(3321005, mapleStatEffect.getAttackCount());
                    /* 1389 */
                    addAttackCount(3321006, mapleStatEffect.getAttackCount());
                    /* 1390 */
                    addAttackCount(3321007, mapleStatEffect.getAttackCount());

                }

                break;



            case 400:

            case 410:

            case 411:

            case 412:

            case 420:

            case 421:

            case 422:

            case 431:

            case 432:

            case 433:

            case 434:
                /* 1406 */
                bx = SkillFactory.getSkill(4000010);
                /* 1407 */
                bof = chra.getTotalSkillLevel(bx);
                /* 1408 */
                if (bof > 0 && bx != null) {
                    /* 1409 */
                    MapleStatEffect mapleStatEffect = bx.getEffect(bof);
                    /* 1410 */
                    this.percent_hp += mapleStatEffect.getPercentHP();
                    /* 1411 */
                    this.ASR += mapleStatEffect.getASRRate();

                }
                /* 1413 */
                bx = SkillFactory.getSkill(4001005);
                /* 1414 */
                bof = chra.getTotalSkillLevel(bx);
                /* 1415 */
                if (bof > 0 && bx != null) {
                    /* 1416 */
                    MapleStatEffect mapleStatEffect = bx.getEffect(bof);
                    /* 1417 */
                    this.speed += mapleStatEffect.getSpeed();
                    /* 1418 */
                    this.speedMax += mapleStatEffect.getSpeedMax();

                }
                /* 1420 */
                bx = SkillFactory.getSkill(4000012);
                /* 1421 */
                bof = chra.getTotalSkillLevel(bx);
                /* 1422 */
                if (bof > 0 && bx != null) {
                    /* 1423 */
                    this.dodgeChance += bx.getEffect(bof).getER();

                }

                break;


            case 500:

            case 510:

            case 511:

            case 512:

            case 520:

            case 521:

            case 522:
                /* 1434 */
                bx = SkillFactory.getSkill(5000000);
                /* 1435 */
                bof = chra.getTotalSkillLevel(bx);
                /* 1436 */
                if (bof > 0 && bx != null) {
                    /* 1437 */
                    MapleStatEffect mapleStatEffect = bx.getEffect(bof);
                    /* 1438 */
                    this.accuracy += mapleStatEffect.getAccX();
                    /* 1439 */
                    this.jump += mapleStatEffect.getPsdJump();
                    /* 1440 */
                    this.speedMax += mapleStatEffect.getSpeedMax();

                }

                break;

        }






        /* 1450 */
        bx = SkillFactory.getSkill(80000000);
        /* 1451 */
        bof = chra.getSkillLevel(bx);
        /* 1452 */
        if (bof > 0 && bx != null) {
            /* 1453 */
            MapleStatEffect mapleStatEffect = bx.getEffect(bof);
            /* 1454 */
            this.localstr += mapleStatEffect.getStrX();
            /* 1455 */
            this.localdex += mapleStatEffect.getDexX();
            /* 1456 */
            this.localint_ += mapleStatEffect.getIntX();
            /* 1457 */
            this.localluk += mapleStatEffect.getLukX();
            /* 1458 */
            this.percent_hp += mapleStatEffect.getPercentHP();
            /* 1459 */
            this.percent_mp += mapleStatEffect.getPercentMP();

        }
        /* 1461 */
        bx = SkillFactory.getSkill(80000001);
        /* 1462 */
        bof = chra.getSkillLevel(bx);
        /* 1463 */
        if (bof > 0 && bx != null) {
            /* 1464 */
            this.percent_boss_damage_rate += bx.getEffect(bof).getBossDamage();

        }
        /* 1466 */
        bx = SkillFactory.getSkill(80000002);
        /* 1467 */
        bof = chra.getSkillLevel(bx);
        /* 1468 */
        if (bof > 0 && bx != null) {
            /* 1469 */
            this.passive_sharpeye_rate = (short) (this.passive_sharpeye_rate + bx.getEffect(bof).getCritical());

        }
        /* 1471 */
        bx = SkillFactory.getSkill(80000005);
        /* 1472 */
        bof = chra.getSkillLevel(bx);
        /* 1473 */
        if (bof > 0 && bx != null) {
            /* 1474 */
            this.percent_ignore_mob_def_rate += bx.getEffect(bof).getIgnoreMob();

        }
        /* 1476 */
        bx = SkillFactory.getSkill(80000006);
        /* 1477 */
        bof = chra.getSkillLevel(bx);
        /* 1478 */
        if (bof > 0 && bx != null) {
            /* 1479 */
            this.percent_hp += bx.getEffect(bof).getPercentHP();

        }
        /* 1481 */
        int[] skillIds = {80000007, 80000008, 80000009, 80000013, 80000014, 80000015, 80000017, 80000018, 80000019, 80000020, 80000021, 80000022, 80000026, 80000027, 80000028, 80000029, 80000030, 80000031, 80000056, 80000057, 80000058, 80000063, 80000064, 80000065, 80000072, 80000073, 80000074, 80000077, 80000078, 80000079, 80000081, 80000082, 80000083, 80000098, 80000099, 80000100, 80000101, 80000102, 80000103, 80000111, 80000112, 80000113, 80000120, 80000121, 80000122};














































        /* 1528 */
        for (int i : skillIds) {
            /* 1529 */
            bx = SkillFactory.getSkill(i);
            /* 1530 */
            if (bx != null) {
                /* 1531 */
                bof = chra.getSkillLevel(bx);
                /* 1532 */
                if (bof > 0 && bx != null) {
                    /* 1533 */
                    MapleStatEffect mapleStatEffect = bx.getEffect(bof);
                    /* 1534 */
                    this.watk += mapleStatEffect.getAttackX();
                    /* 1535 */
                    this.magic += mapleStatEffect.getMagicX();

                }

            }

        }
        /* 1539 */
        bx = SkillFactory.getSkill(80000025);
        /* 1540 */
        bof = chra.getSkillLevel(bx);
        /* 1541 */
        if (bof > 0 && bx != null) {
            /* 1542 */
            MapleStatEffect mapleStatEffect = bx.getEffect(bof);
            /* 1543 */
            this.localstr += mapleStatEffect.getStrX();
            /* 1544 */
            this.localdex += mapleStatEffect.getDexX();
            /* 1545 */
            this.localint_ += mapleStatEffect.getIntX();
            /* 1546 */
            this.localluk += mapleStatEffect.getLukX();
            /* 1547 */
            this.percent_hp = (int) (this.percent_hp + mapleStatEffect.getHpR());
            /* 1548 */
            this.percent_mp = (int) (this.percent_mp + mapleStatEffect.getMpR());
            /* 1549 */
            this.jump += mapleStatEffect.getPsdJump();
            /* 1550 */
            this.speed += mapleStatEffect.getPsdSpeed();

        }
        /* 1552 */
        bx = SkillFactory.getSkill(80000050);
        /* 1553 */
        bof = chra.getTotalSkillLevel(bx);
        /* 1554 */
        if (bof > 0 && bx != null) {
            /* 1555 */
            MapleStatEffect mapleStatEffect = bx.getEffect(bof);
            /* 1556 */
            this.percent_damage += mapleStatEffect.getDAMRate();

        }
        /* 1558 */
        bx = SkillFactory.getSkill(80001040);
        /* 1559 */
        bof = chra.getSkillLevel(bx);
        /* 1560 */
        if (bof <= 0 || bx != null) ;


        /* 1563 */
        bx = SkillFactory.getSkill(80000047);
        /* 1564 */
        bof = chra.getTotalSkillLevel(bx);
        /* 1565 */
        if (bof > 0 && bx != null) {
            /* 1566 */
            MapleStatEffect mapleStatEffect = bx.getEffect(bof);
            /* 1567 */
            this.localstr = (int) (this.localstr + mapleStatEffect.getStrRate() / 100.0D * this.str);
            /* 1568 */
            this.localdex = (int) (this.localdex + mapleStatEffect.getDexRate() / 100.0D * this.dex);
            /* 1569 */
            this.localluk = (int) (this.localluk + mapleStatEffect.getLukRate() / 100.0D * this.luk);
            /* 1570 */
            this.localint_ = (int) (this.localint_ + mapleStatEffect.getIntRate() / 100.0D * this.int_);

        }
        /* 1572 */
        bx = SkillFactory.getSkill(80010006);
        /* 1573 */
        bof = chra.getTotalSkillLevel(bx);
        /* 1574 */
        if (bof > 0 && bx != null) {
            /* 1575 */
            MapleStatEffect mapleStatEffect = bx.getEffect(bof);
            /* 1576 */
            this.percent_hp += mapleStatEffect.getPercentHP();
            /* 1577 */
            this.percent_mp += mapleStatEffect.getPercentMP();
            /* 1578 */
            this.passive_sharpeye_rate = (short) (this.passive_sharpeye_rate + mapleStatEffect.getCritical());
            /* 1579 */
            this.percent_boss_damage_rate += mapleStatEffect.getBossDamage();

        }
        /* 1581 */
        if (JobConstants.is冒险家(chra.getJob())) {
            /* 1582 */
            bx = SkillFactory.getSkill(74);
            /* 1583 */
            bof = chra.getSkillLevel(bx);
            /* 1584 */
            if (bof > 0 && bx != null) {
                /* 1585 */
                this.levelBonus += bx.getEffect(bof).getX();

            }
            /* 1587 */
            bx = SkillFactory.getSkill(80);
            /* 1588 */
            bof = chra.getSkillLevel(bx);
            /* 1589 */
            if (bof > 0 && bx != null) {
                /* 1590 */
                this.levelBonus += bx.getEffect(bof).getX();

            }
            /* 1592 */
            bx = SkillFactory.getSkill(10074);
            /* 1593 */
            bof = chra.getSkillLevel(bx);
            /* 1594 */
            if (bof > 0 && bx != null) {
                /* 1595 */
                this.levelBonus += bx.getEffect(bof).getX();

            }
            /* 1597 */
            bx = SkillFactory.getSkill(10080);
            /* 1598 */
            bof = chra.getSkillLevel(bx);
            /* 1599 */
            if (bof > 0 && bx != null) {
                /* 1600 */
                this.levelBonus += bx.getEffect(bof).getX();

            }
            /* 1602 */
            bx = SkillFactory.getSkill(110);
            /* 1603 */
            bof = chra.getSkillLevel(bx);
            /* 1604 */
            if (bof > 0 && bx != null) {
                /* 1605 */
                MapleStatEffect mapleStatEffect = bx.getEffect(bof);
                /* 1606 */
                this.localstr += mapleStatEffect.getStrX();
                /* 1607 */
                this.localdex += mapleStatEffect.getDexX();
                /* 1608 */
                this.localint_ += mapleStatEffect.getIntX();
                /* 1609 */
                this.localluk += mapleStatEffect.getLukX();
                /* 1610 */
                this.addmaxhp += mapleStatEffect.getMaxHpX();
                /* 1611 */
                this.addmaxmp += mapleStatEffect.getMaxMpX();

            }
            /* 1613 */
            bx = SkillFactory.getSkill(10110);
            /* 1614 */
            bof = chra.getSkillLevel(bx);
            /* 1615 */
            if (bof > 0 && bx != null) {
                /* 1616 */
                MapleStatEffect mapleStatEffect = bx.getEffect(bof);
                /* 1617 */
                this.localstr += mapleStatEffect.getStrX();
                /* 1618 */
                this.localdex += mapleStatEffect.getDexX();
                /* 1619 */
                this.localint_ += mapleStatEffect.getIntX();
                /* 1620 */
                this.localluk += mapleStatEffect.getLukX();
                /* 1621 */
                this.percent_hp = (int) (this.percent_hp + mapleStatEffect.getHpR());
                /* 1622 */
                this.percent_mp = (int) (this.percent_mp + mapleStatEffect.getMpR());

            }

        }




        /* 1629 */
        Skill skillBof = SkillFactory.getSkill(JobConstants.getBOF_ForJob(chra.getJob()));
        /* 1630 */
        Skill skillEmpress = SkillFactory.getSkill(JobConstants.getEmpress_ForJob(chra.getJob()));
        /* 1631 */
        if (chra.getSkillLevel(skillBof) > 0 || chra.getSkillLevel(skillEmpress) > 0) {
            /* 1632 */
            if (chra.getSkillLevel(skillBof) > chra.getSkillLevel(skillEmpress)) {
                /* 1633 */
                MapleStatEffect mapleStatEffect = skillBof.getEffect(chra.getSkillLevel(skillBof));
                /* 1634 */
                this.watk += mapleStatEffect.getX();
                /* 1635 */
                this.magic += mapleStatEffect.getY();
                /* 1636 */
                this.accuracy += mapleStatEffect.getX();

            } else {
                /* 1638 */
                MapleStatEffect mapleStatEffect = skillEmpress.getEffect(chra.getSkillLevel(skillEmpress));
                /* 1639 */
                this.watk += mapleStatEffect.getX();
                /* 1640 */
                this.magic += mapleStatEffect.getY();
                /* 1641 */
                this.accuracy += mapleStatEffect.getX();

            }

        }
        /* 1644 */
        switch (chra.getJob()) {

            case 110:

            case 111:

            case 112:
                /* 1648 */
                bx = SkillFactory.getSkill(1100009);
                /* 1649 */
                bof = chra.getTotalSkillLevel(bx);
                /* 1650 */
                if (bof > 0 && bx != null) {
                    /* 1651 */
                    MapleStatEffect mapleStatEffect = bx.getEffect(bof);
                    /* 1652 */
                    this.localstr += mapleStatEffect.getStrX();
                    /* 1653 */
                    this.localdex += mapleStatEffect.getDexX();

                }
                /* 1655 */
                bx = SkillFactory.getSkill(1110011);
                /* 1656 */
                bof = chra.getTotalSkillLevel(bx);
                /* 1657 */
                if (bof > 0 && bx != null) {
                    /* 1658 */
                    this.ASR += bx.getEffect(bof).getASRRate();
                    /* 1659 */
                    this.TER += bx.getEffect(bof).getTERRate();

                }
                /* 1661 */
                bx = SkillFactory.getSkill(1110009);
                /* 1662 */
                bof = chra.getTotalSkillLevel(bx);
                /* 1663 */
                if (bof > 0 && bx != null) {
                    /* 1664 */
                    MapleStatEffect mapleStatEffect = bx.getEffect(bof);
                    /* 1665 */
                    this.percent_damage_rate += mapleStatEffect.getDamage();
                    /* 1666 */
                    this.percent_boss_damage_rate += mapleStatEffect.getDamage();

                }
                /* 1668 */
                bx = SkillFactory.getSkill(1120012);
                /* 1669 */
                bof = chra.getTotalSkillLevel(bx);
                /* 1670 */
                if (bof > 0 && bx != null) {
                    /* 1671 */
                    this.percent_ignore_mob_def_rate += bx.getEffect(bof).getIgnoreMob();

                }
                /* 1673 */
                if ((eff = chra.getSkillEffect(1100002)) != null) {
                    /* 1674 */
                    this.finalSkillID = eff.getSourceid();

                }
                /* 1676 */
                bx = SkillFactory.getSkill(1120013);
                /* 1677 */
                bof = chra.getTotalSkillLevel(bx);
                /* 1678 */
                if (bof > 0 && bx != null) {
                    /* 1679 */
                    this.finalSkillID = eff.getSourceid();
                    /* 1680 */
                    this.watk += bx.getEffect(bof).getAttackX();

                }



                /* 1685 */
                bx = SkillFactory.getSkill(1120043);
                /* 1686 */
                bof = chra.getTotalSkillLevel(bx);
                /* 1687 */
                if (bof > 0 && bx != null) {
                    /* 1688 */
                    eff = bx.getEffect(bof);
                    /* 1689 */
                    MapleStatEffect 斗气效果 = chra.getStatForBuff(MapleBuffStat.斗气集中);
                    /* 1690 */
                    Integer 斗气状态 = chra.getBuffedValue(MapleBuffStat.斗气集中);
                    /* 1691 */
                    if (斗气效果 != null && 斗气状态 != null) {
                        /* 1692 */
                        this.percent_damage_rate += (eff.getDAMRate() * (斗气状态.intValue() - 1));
                        /* 1693 */
                        this.percent_boss_damage_rate += eff.getDAMRate() * (斗气状态.intValue() - 1);

                    }

                }
                /* 1696 */
                bx = SkillFactory.getSkill(1120044);
                /* 1697 */
                bof = chra.getTotalSkillLevel(bx);
                /* 1698 */
                if (bof > 0 && bx != null) {
                    /* 1699 */
                    addSkillProp(1101013, bx.getEffect(bof).getProp(), 1120044);
                    /* 1700 */
                    addSkillProp(1120003, bx.getEffect(bof).getProp(), 1120044);

                }
                /* 1702 */
                bx = SkillFactory.getSkill(1120045);
                /* 1703 */
                bof = chra.getTotalSkillLevel(bx);
                /* 1704 */
                if (bof > 0 && bx != null) {
                    /* 1705 */
                    eff = bx.getEffect(bof);
                    /* 1706 */
                    MapleStatEffect 斗气效果 = chra.getStatForBuff(MapleBuffStat.斗气集中);
                    /* 1707 */
                    Integer 斗气状态 = chra.getBuffedValue(MapleBuffStat.斗气集中);
                    /* 1708 */
                    if (斗气效果 != null && 斗气状态 != null) {
                        /* 1709 */
                        this.percent_boss_damage_rate += eff.getW() * (斗气状态.intValue() - 1);

                    }

                }
                /* 1712 */
                bx = SkillFactory.getSkill(1120046);
                /* 1713 */
                bof = chra.getTotalSkillLevel(bx);
                /* 1714 */
                if (bof > 0 && bx != null) {
                    /* 1715 */
                    this.percent_acc += bx.getEffect(bof).getArRate();

                }
                /* 1717 */
                bx = SkillFactory.getSkill(1120047);
                /* 1718 */
                bof = chra.getTotalSkillLevel(bx);
                /* 1719 */
                if (bof > 0 && bx != null) {
                    /* 1720 */
                    this.watk += bx.getEffect(bof).getAttackX();

                }
                /* 1722 */
                bx = SkillFactory.getSkill(1120049);
                /* 1723 */
                bof = chra.getTotalSkillLevel(bx);
                /* 1724 */
                if (bof > 0 && bx != null) {
                    /* 1725 */
                    addDamageIncrease(1121008, bx.getEffect(bof).getDAMRate());
                    /* 1726 */
                    addDamageIncrease(1120017, bx.getEffect(bof).getDAMRate());

                }
                /* 1728 */
                bx = SkillFactory.getSkill(1120050);
                /* 1729 */
                bof = chra.getTotalSkillLevel(bx);
                /* 1730 */
                if (bof > 0 && bx != null) {
                    /* 1731 */
                    addTargetPlus(1121008, 1120050, bx.getEffect(bof).getTargetPlus());
                    /* 1732 */
                    addTargetPlus(1120017, 1120050, bx.getEffect(bof).getTargetPlus());

                }
                /* 1734 */
                bx = SkillFactory.getSkill(1120051);
                /* 1735 */
                bof = chra.getTotalSkillLevel(bx);
                /* 1736 */
                if (bof > 0 && bx != null) {
                    /* 1737 */
                    addAttackCount(1121008, bx.getEffect(bof).getAttackCount());
                    /* 1738 */
                    addAttackCount(1120017, bx.getEffect(bof).getAttackCount());

                }


                /* 1742 */
                bx = SkillFactory.getSkill(400004007);
                /* 1743 */
                bof = chra.getTotalSkillLevel(bx);
                /* 1744 */
                if (bof > 0 && bx != null) {
                    /* 1745 */
                    addTargetPlus(1111008, 1120050, bx.getEffect(bof).getTargetPlus());
                    /* 1746 */
                    addIgnoreMobpdpRate(1111008, bx.getEffect(bof).getIgnoreMobpdpR());

                }

                /* 1749 */
                bx = SkillFactory.getSkill(400004008);
                /* 1750 */
                bof = chra.getTotalSkillLevel(bx);
                /* 1751 */
                if (bof > 0 && bx != null) {
                    /* 1752 */
                    addTargetPlus(1121008, bx.getId(), bx.getEffect(bof).getTargetPlus());
                    /* 1753 */
                    addIgnoreMobpdpRate(1121008, bx.getEffect(bof).getIgnoreMobpdpR());

                }

                /* 1756 */
                bx = SkillFactory.getSkill(400004009);
                /* 1757 */
                bof = chra.getTotalSkillLevel(bx);
                /* 1758 */
                if (bof > 0 && bx != null) {
                    /* 1759 */
                    addTargetPlus(1121015, bx.getId(), bx.getEffect(bof).getTargetPlus());
                    /* 1760 */
                    addIgnoreMobpdpRate(1121015, bx.getEffect(bof).getIgnoreMobpdpR());

                }

                /* 1763 */
                bx = SkillFactory.getSkill(400004010);
                /* 1764 */
                bof = chra.getTotalSkillLevel(bx);
                /* 1765 */
                if (bof > 0 && bx != null) {
                    /* 1766 */
                    addTargetPlus(1121052, bx.getId(), bx.getEffect(bof).getTargetPlus());
                    /* 1767 */
                    addIgnoreMobpdpRate(1121052, bx.getEffect(bof).getIgnoreMobpdpR());

                }

                break;


            case 120:

            case 121:

            case 122:
                /* 1774 */
                bx = SkillFactory.getSkill(1200009);
                /* 1775 */
                bof = chra.getTotalSkillLevel(bx);
                /* 1776 */
                if (bof > 0 && bx != null) {
                    /* 1777 */
                    eff = bx.getEffect(bof);
                    /* 1778 */
                    this.localstr += eff.getStrX();
                    /* 1779 */
                    this.localdex += eff.getDexX();

                }
                /* 1781 */
                if ((eff = chra.getSkillEffect(1200002)) != null) {
                    /* 1782 */
                    this.finalSkillID = eff.getSourceid();

                }
                /* 1784 */
                bx = SkillFactory.getSkill(1210001);
                /* 1785 */
                bof = chra.getTotalSkillLevel(bx);
                /* 1786 */
                shield = chra.getInventory(MapleInventoryType.EQUIPPED).getItem((short) -10);
                /* 1787 */
                if (bof > 0 && bx != null && shield != null) {
                    /* 1788 */
                    eff = bx.getEffect(bof);
                    /* 1789 */
                    this.percent_wdef += eff.getX();
                    /* 1790 */
                    this.percent_mdef += eff.getX();
                    /* 1791 */
                    this.dodgeChance += eff.getER();

                }
                /* 1793 */
                bx = SkillFactory.getSkill(1210015);
                /* 1794 */
                bof = chra.getTotalSkillLevel(bx);
                /* 1795 */
                if (bof > 0 && bx != null) {
                    /* 1796 */
                    this.reduceDamageRate += bx.getEffect(bof).getT();

                }
                /* 1798 */
                bx = SkillFactory.getSkill(1221016);
                /* 1799 */
                bof = chra.getTotalSkillLevel(bx);
                /* 1800 */
                if (bof > 0 && bx != null) {
                    /* 1801 */
                    this.ASR += bx.getEffect(bof).getASRRate();

                }
                /* 1803 */
                bx = SkillFactory.getSkill(1220010);
                /* 1804 */
                bof = chra.getTotalSkillLevel(bx);
                /* 1805 */
                if (bof > 0 && bx != null) {
                    /* 1806 */
                    eff = bx.getEffect(bof);
                    /* 1807 */
                    addAttackCount(1201011, eff.getAttackCount());
                    /* 1808 */
                    addAttackCount(1201012, eff.getAttackCount());
                    /* 1809 */
                    addAttackCount(1211008, eff.getAttackCount());
                    /* 1810 */
                    addAttackCount(1221004, eff.getAttackCount());
                    /* 1811 */
                    addAttackCount(1221009, eff.getAttackCount());

                    /* 1813 */
                    addTargetPlus(1201011, 1220010, eff.getTargetPlus());
                    /* 1814 */
                    addTargetPlus(1201012, 1220010, eff.getTargetPlus());
                    /* 1815 */
                    addTargetPlus(1211008, 1220010, eff.getTargetPlus());
                    /* 1816 */
                    addTargetPlus(1221004, 1220010, eff.getTargetPlus());
                    /* 1817 */
                    addTargetPlus(1221009, 1220010, eff.getTargetPlus());
                    /* 1818 */
                    Integer buff = chra.getBuffedValue(MapleBuffStat.元素冲击);
                    /* 1819 */
                    if (buff != null) {
                        /* 1820 */
                        this.watk += buff.intValue() / 5 * 12;
                        /* 1821 */
                        this.percent_damage += buff.intValue();

                    }

                }



                /* 1827 */
                bx = SkillFactory.getSkill(1220043);
                /* 1828 */
                bof = chra.getTotalSkillLevel(bx);
                /* 1829 */
                if (bof > 0 && bx != null) {
                    /* 1830 */
                    addBuffDuration(1211013, bx.getEffect(bof).getDuration());

                }
                /* 1832 */
                bx = SkillFactory.getSkill(1220044);
                /* 1833 */
                bof = chra.getTotalSkillLevel(bx);
                /* 1834 */
                if (bof > 0 && bx != null) {
                    /* 1835 */
                    addSkillProp(1211013, bx.getEffect(bof).getProp(), 1220044);

                }
                /* 1837 */
                bx = SkillFactory.getSkill(1220046);
                /* 1838 */
                bof = chra.getTotalSkillLevel(bx);
                /* 1839 */
                if (bof > 0 && bx != null) {
                    /* 1840 */
                    addDamageIncrease(1221009, bx.getEffect(bof).getDAMRate());

                }
                /* 1842 */
                bx = SkillFactory.getSkill(1220048);
                /* 1843 */
                bof = chra.getTotalSkillLevel(bx);
                /* 1844 */
                if (bof > 0 && bx != null) {
                    /* 1845 */
                    addAttackCount(1221009, bx.getEffect(bof).getAttackCount());

                }
                /* 1847 */
                bx = SkillFactory.getSkill(1220049);
                /* 1848 */
                bof = chra.getTotalSkillLevel(bx);
                /* 1849 */
                if (bof > 0 && bx != null) {
                    /* 1850 */
                    addDamageIncrease(1221011, bx.getEffect(bof).getDAMRate());

                }
                /* 1852 */
                bx = SkillFactory.getSkill(1220050);
                /* 1853 */
                bof = chra.getTotalSkillLevel(bx);
                /* 1854 */
                if (bof > 0 && bx != null) {
                    /* 1855 */
                    addAttackCount(1221011, bx.getEffect(bof).getAttackCount());

                }
                /* 1857 */
                bx = SkillFactory.getSkill(1220051);
                /* 1858 */
                bof = chra.getTotalSkillLevel(bx);
                /* 1859 */
                if (bof > 0 && bx != null) {
                    /* 1860 */
                    addCoolTimeReduce(1221011, bx.getEffect(bof).getCooltimeReduceR());

                }


                /* 1864 */
                bx = SkillFactory.getSkill(400004017);
                /* 1865 */
                bof = chra.getTotalSkillLevel(bx);
                /* 1866 */
                if (bof > 0 && bx != null) {
                    /* 1867 */
                    addTargetPlus(1221009, bx.getId(), bx.getEffect(bof).getTargetPlus());
                    /* 1868 */
                    addIgnoreMobpdpRate(1221009, bx.getEffect(bof).getIgnoreMobpdpR());

                }

                /* 1871 */
                bx = SkillFactory.getSkill(400004016);
                /* 1872 */
                bof = chra.getTotalSkillLevel(bx);
                /* 1873 */
                if (bof > 0 && bx != null) {
                    /* 1874 */
                    addTargetPlus(1221004, bx.getId(), bx.getEffect(bof).getTargetPlus());
                    /* 1875 */
                    addIgnoreMobpdpRate(1221004, bx.getEffect(bof).getIgnoreMobpdpR());

                }

                break;


            case 130:

            case 131:

            case 132:
                /* 1882 */
                bx = SkillFactory.getSkill(1300009);
                /* 1883 */
                bof = chra.getTotalSkillLevel(bx);
                /* 1884 */
                if (bof > 0 && bx != null) {
                    /* 1885 */
                    eff = bx.getEffect(bof);
                    /* 1886 */
                    this.localstr += eff.getStrX();
                    /* 1887 */
                    this.localdex += eff.getDexX();

                }
                /* 1889 */
                if ((eff = chra.getSkillEffect(1300002)) != null) {
                    /* 1890 */
                    this.finalSkillID = eff.getSourceid();

                }
                /* 1892 */
                bx = SkillFactory.getSkill(1310010);
                /* 1893 */
                bof = chra.getTotalSkillLevel(bx);
                /* 1894 */
                if (bof > 0 && bx != null) {
                    /* 1895 */
                    this.ASR += bx.getEffect(bof).getASRRate();
                    /* 1896 */
                    this.TER += bx.getEffect(bof).getTERRate();

                }
                /* 1898 */
                bx = SkillFactory.getSkill(1310009);
                /* 1899 */
                bof = chra.getTotalSkillLevel(bx);
                /* 1900 */
                if (bof > 0 && bx != null) {
                    /* 1901 */
                    eff = bx.getEffect(bof);
                    /* 1902 */
                    this.passive_sharpeye_rate = (short) (this.passive_sharpeye_rate + eff.getCritical());
                    /* 1903 */
                    this.passive_sharpeye_min_percent = (short) (this.passive_sharpeye_min_percent + eff.getCriticalMin());
                    /* 1904 */
                    this.hpRecoverProp += eff.getProp();
                    /* 1905 */
                    this.hpRecover_Percent += eff.getX();

                }
                /* 1907 */
                bx = SkillFactory.getSkill(1321015);
                /* 1908 */
                bof = chra.getTotalSkillLevel(bx);
                /* 1909 */
                if (bof > 0 && bx != null) {
                    /* 1910 */
                    this.percent_ignore_mob_def_rate += bx.getEffect(bof).getIgnoreMob();

                }



                /* 1915 */
                bx = SkillFactory.getSkill(1320043);
                /* 1916 */
                bof = chra.getTotalSkillLevel(bx);
                /* 1917 */
                if (bof > 0 && bx != null) {
                    /* 1918 */
                    eff = bx.getEffect(bof);
                    /* 1919 */
                    addDamageIncrease(1311013, eff.getDAMRate());
                    /* 1920 */
                    addDamageIncrease(1311014, eff.getDAMRate());
                    /* 1921 */
                    addDamageIncrease(1320011, eff.getDAMRate());

                }
                /* 1923 */
                bx = SkillFactory.getSkill(1320046);
                /* 1924 */
                bof = chra.getTotalSkillLevel(bx);
                /* 1925 */
                if (bof > 0 && bx != null && chra.getBuffedValue(MapleBuffStat.重生契约) != null) {
                    /* 1926 */
                    eff = bx.getEffect(bof);
                    /* 1927 */
                    this.percent_damage_rate += eff.getDamage();

                }
                /* 1929 */
                bx = SkillFactory.getSkill(1320049);
                /* 1930 */
                bof = chra.getTotalSkillLevel(bx);
                /* 1931 */
                if (bof > 0 && bx != null) {
                    /* 1932 */
                    eff = bx.getEffect(bof);
                    /* 1933 */
                    addDamageIncrease(1321013, eff.getDAMRate());

                }
                /* 1935 */
                bx = SkillFactory.getSkill(1320051);
                /* 1936 */
                bof = chra.getTotalSkillLevel(bx);
                /* 1937 */
                if (bof > 0 && bx != null) {
                    /* 1938 */
                    eff = bx.getEffect(bof);
                    /* 1939 */
                    addBossDamageRate(1321013, eff.getBossDamage());

                }


                /* 1943 */
                bx = SkillFactory.getSkill(400004033);
                /* 1944 */
                bof = chra.getTotalSkillLevel(bx);
                /* 1945 */
                if (bof > 0 && bx != null) {
                    /* 1946 */
                    addTargetPlus(1311011, bx.getId(), bx.getEffect(bof).getTargetPlus());
                    /* 1947 */
                    addIgnoreMobpdpRate(1311011, bx.getEffect(bof).getIgnoreMobpdpR());

                }

                /* 1950 */
                bx = SkillFactory.getSkill(400004035);
                /* 1951 */
                bof = chra.getTotalSkillLevel(bx);
                /* 1952 */
                if (bof > 0 && bx != null) {
                    /* 1953 */
                    addTargetPlus(1301013, bx.getId(), bx.getEffect(bof).getTargetPlus());
                    /* 1954 */
                    addIgnoreMobpdpRate(1301013, bx.getEffect(bof).getIgnoreMobpdpR());

                }

                /* 1957 */
                bx = SkillFactory.getSkill(400004036);
                /* 1958 */
                bof = chra.getTotalSkillLevel(bx);
                /* 1959 */
                if (bof > 0 && bx != null) {
                    /* 1960 */
                    addTargetPlus(1321012, bx.getId(), bx.getEffect(bof).getTargetPlus());
                    /* 1961 */
                    addIgnoreMobpdpRate(1321012, bx.getEffect(bof).getIgnoreMobpdpR());

                }

                /* 1964 */
                bx = SkillFactory.getSkill(400004037);
                /* 1965 */
                bof = chra.getTotalSkillLevel(bx);
                /* 1966 */
                if (bof > 0 && bx != null) {
                    /* 1967 */
                    addTargetPlus(1321013, bx.getId(), bx.getEffect(bof).getTargetPlus());
                    /* 1968 */
                    addIgnoreMobpdpRate(1321013, bx.getEffect(bof).getIgnoreMobpdpR());

                }

                /* 1971 */
                bx = SkillFactory.getSkill(400004038);
                /* 1972 */
                bof = chra.getTotalSkillLevel(bx);
                /* 1973 */
                if (bof > 0 && bx != null) {
                    /* 1974 */
                    addTargetPlus(1321052, bx.getId(), bx.getEffect(bof).getTargetPlus());
                    /* 1975 */
                    addIgnoreMobpdpRate(1321052, bx.getEffect(bof).getIgnoreMobpdpR());

                }

                break;


            case 210:

            case 211:

            case 212:
                /* 1982 */
                bx = SkillFactory.getSkill(2100007);
                /* 1983 */
                bof = chra.getTotalSkillLevel(bx);
                /* 1984 */
                if (bof > 0 && bx != null) {
                    /* 1985 */
                    this.localint_ += bx.getEffect(bof).getIntX();

                }
                /* 1987 */
                bx = SkillFactory.getSkill(2110000);
                /* 1988 */
                bof = chra.getTotalSkillLevel(bx);
                /* 1989 */
                if (bof > 0 && bx != null) {
                    /* 1990 */
                    eff = bx.getEffect(bof);
                    /* 1991 */
                    this.dotTime += eff.getX();
                    /* 1992 */
                    this.dot += eff.getZ();

                }
                /* 1994 */
                bx = SkillFactory.getSkill(2110001);
                /* 1995 */
                bof = chra.getTotalSkillLevel(bx);
                /* 1996 */
                if (bof > 0 && bx != null) {
                    /* 1997 */
                    eff = bx.getEffect(bof);
                    /* 1998 */
                    this.mpconPercent += eff.getCostMpRate();
                    /* 1999 */
                    this.percent_damage += eff.getDAMRate();

                }
                /* 2001 */
                bx = SkillFactory.getSkill(2121003);
                /* 2002 */
                bof = chra.getTotalSkillLevel(bx);
                /* 2003 */
                if (bof > 0 && bx != null) {
                    /* 2004 */
                    eff = bx.getEffect(bof);
                    /* 2005 */
                    addDamageIncrease(2111003, eff.getX());

                }
                /* 2007 */
                bx = SkillFactory.getSkill(2120012);
                /* 2008 */
                bof = chra.getTotalSkillLevel(bx);
                /* 2009 */
                if (bof > 0 && bx != null) {
                    /* 2010 */
                    eff = bx.getEffect(bof);
                    /* 2011 */
                    this.magic += eff.getMagicX();
                    /* 2012 */
                    this.BuffUP_Skill += eff.getBuffTimeRate();

                }
                /* 2014 */
                bx = SkillFactory.getSkill(2120010);
                /* 2015 */
                bof = chra.getTotalSkillLevel(bx);
                /* 2016 */
                if (bof > 0 && bx != null) {
                    /* 2017 */
                    eff = bx.getEffect(bof);
                    /* 2018 */
                    this.percent_damage_rate += (eff.getX() * eff.getY());
                    /* 2019 */
                    this.percent_boss_damage_rate += eff.getX() * eff.getY();
                    /* 2020 */
                    this.percent_ignore_mob_def_rate += eff.getIgnoreMob();

                }
                /* 2022 */
                if ((eff = chra.getSkillEffect(2120013)) != null && chra.isSkillCooling(2121007)) {
                    /* 2023 */
                    this.finalSkillID = eff.getSourceid();

                }



                /* 2028 */
                bx = SkillFactory.getSkill(2120046);
                /* 2029 */
                bof = chra.getTotalSkillLevel(bx);
                /* 2030 */
                if (bof > 0 && bx != null) {
                    /* 2031 */
                    addDamageIncrease(2121006, bx.getEffect(bof).getDAMRate());

                }
                /* 2033 */
                bx = SkillFactory.getSkill(2120048);
                /* 2034 */
                bof = chra.getTotalSkillLevel(bx);
                /* 2035 */
                if (bof > 0 && bx != null) {
                    /* 2036 */
                    addAttackCount(2121006, bx.getEffect(bof).getAttackCount());

                }
                /* 2038 */
                bx = SkillFactory.getSkill(2120049);
                /* 2039 */
                bof = chra.getTotalSkillLevel(bx);
                /* 2040 */
                if (bof > 0 && bx != null) {
                    /* 2041 */
                    addAttackCount(2121003, bx.getEffect(bof).getAttackCount());

                }
                /* 2043 */
                bx = SkillFactory.getSkill(2120050);
                /* 2044 */
                bof = chra.getTotalSkillLevel(bx);
                /* 2045 */
                if (bof > 0 && bx != null) {
                    /* 2046 */
                    addIgnoreMobpdpRate(2121003, bx.getEffect(bof).getIgnoreMob());

                }
                /* 2048 */
                bx = SkillFactory.getSkill(2120051);
                /* 2049 */
                bof = chra.getTotalSkillLevel(bx);
                /* 2050 */
                if (bof > 0 && bx != null) {
                    /* 2051 */
                    addCoolTimeReduce(2121003, bx.getEffect(bof).getCooltimeReduceR());

                }

                break;


            case 220:

            case 221:

            case 222:
                /* 2058 */
                bx = SkillFactory.getSkill(2200007);
                /* 2059 */
                bof = chra.getTotalSkillLevel(bx);
                /* 2060 */
                if (bof > 0 && bx != null) {
                    /* 2061 */
                    this.localint_ += bx.getEffect(bof).getIntX();

                }
                /* 2063 */
                bx = SkillFactory.getSkill(2210000);
                /* 2064 */
                bof = chra.getTotalSkillLevel(bx);
                /* 2065 */
                if (bof > 0 && bx != null) {
                    /* 2066 */
                    this.dot += bx.getEffect(bof).getZ();

                }
                /* 2068 */
                bx = SkillFactory.getSkill(2210001);
                /* 2069 */
                bof = chra.getTotalSkillLevel(bx);
                /* 2070 */
                if (bof > 0 && bx != null) {
                    /* 2071 */
                    eff = bx.getEffect(bof);
                    /* 2072 */
                    this.mpconPercent += eff.getCostMpRate();
                    /* 2073 */
                    this.percent_damage += eff.getDAMRate();

                }
                /* 2075 */
                bx = SkillFactory.getSkill(2220013);
                /* 2076 */
                bof = chra.getTotalSkillLevel(bx);
                /* 2077 */
                if (bof > 0 && bx != null) {
                    /* 2078 */
                    eff = bx.getEffect(bof);
                    /* 2079 */
                    this.magic += eff.getMagicX();
                    /* 2080 */
                    this.BuffUP_Skill += eff.getBuffTimeRate();

                }
                /* 2082 */
                bx = SkillFactory.getSkill(2220010);
                /* 2083 */
                bof = chra.getTotalSkillLevel(bx);
                /* 2084 */
                if (bof > 0 && bx != null) {
                    /* 2085 */
                    eff = bx.getEffect(bof);
                    /* 2086 */
                    this.percent_damage_rate += (eff.getX() * eff.getY());
                    /* 2087 */
                    this.percent_boss_damage_rate += eff.getX() * eff.getY();
                    /* 2088 */
                    this.percent_ignore_mob_def_rate += eff.getIgnoreMob();

                }
                /* 2090 */
                if ((eff = chra.getSkillEffect(2220014)) != null && chra.isSkillCooling(2221007)) {
                    /* 2091 */
                    this.finalSkillID = eff.getSourceid();

                }



                /* 2096 */
                bx = SkillFactory.getSkill(2220043);
                /* 2097 */
                bof = chra.getTotalSkillLevel(bx);
                /* 2098 */
                if (bof > 0 && bx != null) {
                    /* 2099 */
                    addDamageIncrease(2211007, bx.getEffect(bof).getDAMRate());

                }
                /* 2101 */
                bx = SkillFactory.getSkill(2220044);
                /* 2102 */
                bof = chra.getTotalSkillLevel(bx);
                /* 2103 */
                if (bof > 0 && bx != null) {
                    /* 2104 */
                    addTargetPlus(2211007, bx.getId(), bx.getEffect(bof).getTargetPlus());

                }
                /* 2106 */
                bx = SkillFactory.getSkill(2220046);
                /* 2107 */
                bof = chra.getTotalSkillLevel(bx);
                /* 2108 */
                if (bof > 0 && bx != null) {
                    /* 2109 */
                    addDamageIncrease(2221006, bx.getEffect(bof).getDAMRate());

                }
                /* 2111 */
                bx = SkillFactory.getSkill(2220047);
                /* 2112 */
                bof = chra.getTotalSkillLevel(bx);
                /* 2113 */
                if (bof > 0 && bx != null) {
                    /* 2114 */
                    addTargetPlus(2221006, bx.getId(), bx.getEffect(bof).getTargetPlus());

                }
                /* 2116 */
                bx = SkillFactory.getSkill(2220048);
                /* 2117 */
                bof = chra.getTotalSkillLevel(bx);
                /* 2118 */
                if (bof > 0 && bx != null) {
                    /* 2119 */
                    addAttackCount(2221006, bx.getEffect(bof).getAttackCount());

                }
                /* 2121 */
                bx = SkillFactory.getSkill(2220049);
                /* 2122 */
                bof = chra.getTotalSkillLevel(bx);
                /* 2123 */
                if (bof > 0 && bx != null) {
                    /* 2124 */
                    addTargetPlus(2211010, bx.getId(), bx.getEffect(bof).getTargetPlus());

                }
                /* 2126 */
                bx = SkillFactory.getSkill(2220050);
                /* 2127 */
                bof = chra.getTotalSkillLevel(bx);
                /* 2128 */
                if (bof > 0 && bx != null) {
                    /* 2129 */
                    addAttackCount(2211010, bx.getEffect(bof).getAttackCount());

                }
                /* 2131 */
                bx = SkillFactory.getSkill(2220051);
                /* 2132 */
                bof = chra.getTotalSkillLevel(bx);
                /* 2133 */
                if (bof > 0 && bx != null) {
                    /* 2134 */
                    addCoolTimeReduce(2211010, bx.getEffect(bof).getCooltimeReduceR());

                }

                break;


            case 230:

            case 231:

            case 232:
                /* 2141 */
                bx = SkillFactory.getSkill(2300007);
                /* 2142 */
                bof = chra.getTotalSkillLevel(bx);
                /* 2143 */
                if (bof > 0 && bx != null) {
                    /* 2144 */
                    this.localint_ += bx.getEffect(bof).getIntX();

                }
                /* 2146 */
                bx = SkillFactory.getSkill(2320012);
                /* 2147 */
                bof = chra.getTotalSkillLevel(bx);
                /* 2148 */
                if (bof > 0 && bx != null) {
                    /* 2149 */
                    eff = bx.getEffect(bof);
                    /* 2150 */
                    this.magic += eff.getMagicX();
                    /* 2151 */
                    this.BuffUP_Skill += eff.getBuffTimeRate();

                }
                /* 2153 */
                bx = SkillFactory.getSkill(2320011);
                /* 2154 */
                bof = chra.getTotalSkillLevel(bx);
                /* 2155 */
                if (bof > 0 && bx != null) {
                    /* 2156 */
                    eff = bx.getEffect(bof);
                    /* 2157 */
                    this.percent_damage_rate += (eff.getX() * eff.getY());
                    /* 2158 */
                    this.percent_boss_damage_rate += eff.getX() * eff.getY();
                    /* 2159 */
                    this.percent_ignore_mob_def_rate += eff.getIgnoreMob();

                }



                /* 2164 */
                bx = SkillFactory.getSkill(2320044);
                /* 2165 */
                bof = chra.getTotalSkillLevel(bx);
                /* 2166 */
                if (bof > 0 && bx != null) {
                    /* 2167 */
                    addBuffDuration(2311009, bx.getEffect(bof).getDuration());

                }
                /* 2169 */
                bx = SkillFactory.getSkill(2320045);
                /* 2170 */
                bof = chra.getTotalSkillLevel(bx);
                /* 2171 */
                if (bof > 0 && bx != null) {
                    /* 2172 */
                    addCoolTimeReduce(2311009, bx.getEffect(bof).getCooltimeReduceR());

                }

                break;


            case 310:

            case 311:

            case 312:
                /* 2179 */
                bx = SkillFactory.getSkill(3100006);
                /* 2180 */
                bof = chra.getTotalSkillLevel(bx);
                /* 2181 */
                if (bof > 0 && bx != null) {
                    /* 2182 */
                    eff = bx.getEffect(bof);
                    /* 2183 */
                    this.localstr += eff.getStrX();
                    /* 2184 */
                    this.localdex += eff.getDexX();

                }
                /* 2186 */
                if ((eff = chra.getSkillEffect(3100001)) != null) {
                    /* 2187 */
                    this.finalSkillID = eff.getSourceid();

                }
                /* 2189 */
                bx = SkillFactory.getSkill(3110012);
                /* 2190 */
                bof = chra.getTotalSkillLevel(bx);
                /* 2191 */
                if (bof > 0 && bx != null) {
                    /* 2192 */
                    eff = bx.getEffect(bof);
                    /* 2193 */
                    this.ASR += eff.getASRRate();
                    /* 2194 */
                    this.TER += eff.getTERRate();

                }
                /* 2196 */
                bx = SkillFactory.getSkill(3110014);
                /* 2197 */
                bof = chra.getTotalSkillLevel(bx);
                /* 2198 */
                if (bof > 0 && bx != null) {
                    /* 2199 */
                    eff = bx.getEffect(bof);
                    /* 2200 */
                    this.percent_ignore_mob_def_rate += eff.getIgnoreMob();
                    /* 2201 */
                    this.percent_acc += eff.getArRate();
                    /* 2202 */
                    this.percent_damage += eff.getDAMRate();

                }
                /* 2204 */
                bx = SkillFactory.getSkill(3111005);
                /* 2205 */
                bof = chra.getTotalSkillLevel(bx);
                /* 2206 */
                if (bof > 0 && bx != null) {
                    /* 2207 */
                    eff = bx.getEffect(bof);
                    /* 2208 */
                    this.percent_wdef += eff.getWDEFRate();
                    /* 2209 */
                    this.percent_mdef += eff.getMDEFRate();

                }
                /* 2211 */
                bx = SkillFactory.getSkill(3111010);
                /* 2212 */
                bof = chra.getTotalSkillLevel(bx);
                /* 2213 */
                if (bof > 0 && bx != null) {
                    /* 2214 */
                    this.percent_hp += bx.getEffect(bof).getPercentHP();

                }
                /* 2216 */
                bx = SkillFactory.getSkill(3110007);
                /* 2217 */
                bof = chra.getTotalSkillLevel(bx);
                /* 2218 */
                if (bof > 0 && bx != null) {
                    /* 2219 */
                    this.dodgeChance += bx.getEffect(bof).getER();

                }
                /* 2221 */
                bx = SkillFactory.getSkill(3120008);
                /* 2222 */
                bof = chra.getTotalSkillLevel(bx);
                /* 2223 */
                if (bof > 0 && bx != null) {
                    /* 2224 */
                    eff = bx.getEffect(bof);
                    /* 2225 */
                    this.finalSkillID = eff.getSourceid();
                    /* 2226 */
                    this.watk += eff.getAttackX();
                    /* 2227 */
                    addDamageIncrease(3100001, eff.getDamage());

                }



                /* 2232 */
                bx = SkillFactory.getSkill(3120043);
                /* 2233 */
                bof = chra.getTotalSkillLevel(bx);
                /* 2234 */
                if (bof > 0 && bx != null) {
                    /* 2235 */
                    addBuffDuration(3121002, bx.getEffect(bof).getDuration());

                }
                /* 2237 */
                bx = SkillFactory.getSkill(3120044);
                /* 2238 */
                bof = chra.getTotalSkillLevel(bx);
                /* 2239 */
                if (bof <= 0 || bx != null) ;


                /* 2242 */
                bx = SkillFactory.getSkill(3120045);
                /* 2243 */
                bof = chra.getTotalSkillLevel(bx);
                /* 2244 */
                if (bof <= 0 || bx != null) ;


                /* 2247 */
                bx = SkillFactory.getSkill(3120046);
                /* 2248 */
                bof = chra.getTotalSkillLevel(bx);
                /* 2249 */
                if (bof > 0 && bx != null) {
                    /* 2250 */
                    addDamageIncrease(3121015, bx.getEffect(bof).getDAMRate());

                }
                /* 2252 */
                bx = SkillFactory.getSkill(3120047);
                /* 2253 */
                bof = chra.getTotalSkillLevel(bx);
                /* 2254 */
                if (bof > 0 && bx != null) {
                    /* 2255 */
                    addTargetPlus(3121015, bx.getId(), bx.getEffect(bof).getTargetPlus());

                }
                /* 2257 */
                bx = SkillFactory.getSkill(3120048);
                /* 2258 */
                bof = chra.getTotalSkillLevel(bx);
                /* 2259 */
                if (bof > 0 && bx != null) {
                    /* 2260 */
                    addAttackCount(3121015, bx.getEffect(bof).getAttackCount());

                }
                /* 2262 */
                bx = SkillFactory.getSkill(3120049);
                /* 2263 */
                bof = chra.getTotalSkillLevel(bx);
                /* 2264 */
                if (bof > 0 && bx != null) {
                    /* 2265 */
                    addDamageIncrease(3121020, bx.getEffect(bof).getDAMRate());

                }
                /* 2267 */
                bx = SkillFactory.getSkill(3120050);
                /* 2268 */
                bof = chra.getTotalSkillLevel(bx);
                /* 2269 */
                if (bof > 0 && bx != null) {
                    /* 2270 */
                    addBossDamageRate(3121020, bx.getEffect(bof).getBossDamage());

                }
                /* 2272 */
                bx = SkillFactory.getSkill(3120051);
                /* 2273 */
                bof = chra.getTotalSkillLevel(bx);
                /* 2274 */
                if (bof > 0 && bx != null) {
                    /* 2275 */
                    addAttackCount(3121020, bx.getEffect(bof).getAttackCount());

                }

                break;


            case 320:

            case 321:

            case 322:
                /* 2282 */
                bx = SkillFactory.getSkill(3200006);
                /* 2283 */
                bof = chra.getTotalSkillLevel(bx);
                /* 2284 */
                if (bof > 0 && bx != null) {
                    /* 2285 */
                    eff = bx.getEffect(bof);
                    /* 2286 */
                    this.localstr += eff.getStrX();
                    /* 2287 */
                    this.localdex += eff.getDexX();

                }
                /* 2289 */
                if ((eff = chra.getSkillEffect(3200001)) != null) {
                    /* 2290 */
                    this.finalSkillID = eff.getSourceid();

                }
                /* 2292 */
                bx = SkillFactory.getSkill(3210007);
                /* 2293 */
                bof = chra.getTotalSkillLevel(bx);
                /* 2294 */
                if (bof > 0 && bx != null) {
                    /* 2295 */
                    this.dodgeChance += bx.getEffect(bof).getER();

                }
                /* 2297 */
                bx = SkillFactory.getSkill(3210015);
                /* 2298 */
                bof = chra.getTotalSkillLevel(bx);
                /* 2299 */
                if (bof > 0 && bx != null) {
                    /* 2300 */
                    eff = bx.getEffect(bof);
                    /* 2301 */
                    this.percent_ignore_mob_def_rate += eff.getIgnoreMob();
                    /* 2302 */
                    this.percent_acc += eff.getArRate();
                    /* 2303 */
                    this.percent_damage += eff.getDAMRate();

                }
                /* 2305 */
                bx = SkillFactory.getSkill(3211005);
                /* 2306 */
                bof = chra.getTotalSkillLevel(bx);
                /* 2307 */
                if (bof > 0 && bx != null) {
                    /* 2308 */
                    eff = bx.getEffect(bof);
                    /* 2309 */
                    this.percent_wdef += eff.getWDEFRate();
                    /* 2310 */
                    this.percent_mdef += eff.getMDEFRate();

                }
                /* 2312 */
                bx = SkillFactory.getSkill(3211010);
                /* 2313 */
                bof = chra.getTotalSkillLevel(bx);
                /* 2314 */
                if (bof > 0 && bx != null) {
                    /* 2315 */
                    this.percent_hp += bx.getEffect(bof).getPercentHP();

                }
                /* 2317 */
                bx = SkillFactory.getSkill(3211011);
                /* 2318 */
                bof = chra.getTotalSkillLevel(bx);
                /* 2319 */
                if (bof > 0 && bx != null) {
                    /* 2320 */
                    eff = bx.getEffect(bof);
                    /* 2321 */
                    this.ASR += eff.getASRRate();
                    /* 2322 */
                    this.TER += eff.getTERRate();

                }



                /* 2327 */
                bx = SkillFactory.getSkill(3220043);
                /* 2328 */
                bof = chra.getTotalSkillLevel(bx);
                /* 2329 */
                if (bof > 0 && bx != null) {
                    /* 2330 */
                    addBuffDuration(3221002, bx.getEffect(bof).getDuration());

                }
                /* 2332 */
                bx = SkillFactory.getSkill(3220044);
                /* 2333 */
                bof = chra.getTotalSkillLevel(bx);
                /* 2334 */
                if (bof <= 0 || bx != null) ;


                /* 2337 */
                bx = SkillFactory.getSkill(3220045);
                /* 2338 */
                bof = chra.getTotalSkillLevel(bx);
                /* 2339 */
                if (bof <= 0 || bx != null) ;


                /* 2342 */
                bx = SkillFactory.getSkill(3220046);
                /* 2343 */
                bof = chra.getTotalSkillLevel(bx);
                /* 2344 */
                if (bof > 0 && bx != null) {
                    /* 2345 */
                    addDamageIncrease(3221017, bx.getEffect(bof).getDAMRate());

                }
                /* 2347 */
                bx = SkillFactory.getSkill(3220047);
                /* 2348 */
                bof = chra.getTotalSkillLevel(bx);
                /* 2349 */
                if (bof > 0 && bx != null) {
                    /* 2350 */
                    addTargetPlus(3221017, bx.getId(), bx.getEffect(bof).getTargetPlus());

                }
                /* 2352 */
                bx = SkillFactory.getSkill(3220048);
                /* 2353 */
                bof = chra.getTotalSkillLevel(bx);
                /* 2354 */
                if (bof > 0 && bx != null) {
                    /* 2355 */
                    addAttackCount(3221017, bx.getEffect(bof).getAttackCount());

                }
                /* 2357 */
                bx = SkillFactory.getSkill(3220049);
                /* 2358 */
                bof = chra.getTotalSkillLevel(bx);
                /* 2359 */
                if (bof > 0 && bx != null) {
                    /* 2360 */
                    addDamageIncrease(3221007, bx.getEffect(bof).getDAMRate());

                }
                /* 2362 */
                bx = SkillFactory.getSkill(3220050);
                /* 2363 */
                bof = chra.getTotalSkillLevel(bx);
                /* 2364 */
                if (bof <= 0 || bx != null) ;


                /* 2367 */
                bx = SkillFactory.getSkill(3220051);
                /* 2368 */
                bof = chra.getTotalSkillLevel(bx);
                /* 2369 */
                if (bof > 0 && bx != null) {
                    /* 2370 */
                    addCoolTimeReduce(3221007, bx.getEffect(bof).getCooltimeReduceR());

                }

                break;


            case 410:

            case 411:

            case 412:
                /* 2377 */
                bx = SkillFactory.getSkill(4100007);
                /* 2378 */
                bof = chra.getTotalSkillLevel(bx);
                /* 2379 */
                if (bof > 0 && bx != null) {
                    /* 2380 */
                    eff = bx.getEffect(bof);
                    /* 2381 */
                    this.localluk += eff.getLukX();
                    /* 2382 */
                    this.localdex += eff.getDexX();

                }
                /* 2384 */
                bx = SkillFactory.getSkill(4110008);
                /* 2385 */
                bof = chra.getTotalSkillLevel(bx);
                /* 2386 */
                if (bof > 0 && bx != null) {
                    /* 2387 */
                    eff = bx.getEffect(bof);
                    /* 2388 */
                    this.percent_hp += eff.getPercentHP();
                    /* 2389 */
                    this.ASR += eff.getASRRate();
                    /* 2390 */
                    this.TER += eff.getTERRate();

                }
                /* 2392 */
                bx = SkillFactory.getSkill(4110012);
                /* 2393 */
                bof = chra.getTotalSkillLevel(bx);
                /* 2394 */
                if (bof > 0 && bx != null) {
                    /* 2395 */
                    eff = bx.getEffect(bof);
                    /* 2396 */
                    this.percent_damage += eff.getPercentDamageRate();

                }
                /* 2398 */
                bx = SkillFactory.getSkill(4110014);
                /* 2399 */
                bof = chra.getTotalSkillLevel(bx);
                /* 2400 */
                if (bof > 0 && bx != null) {
                    /* 2401 */
                    eff = bx.getEffect(bof);
                    /* 2402 */
                    this.RecoveryUP += eff.getX() - 100;
                    /* 2403 */
                    this.BuffUP += eff.getY() - 100;

                }
                /* 2405 */
                bx = SkillFactory.getSkill(4121014);
                /* 2406 */
                bof = chra.getTotalSkillLevel(bx);
                /* 2407 */
                if (bof > 0 && bx != null) {
                    /* 2408 */
                    eff = bx.getEffect(bof);
                    /* 2409 */
                    this.percent_ignore_mob_def_rate += eff.getIgnoreMob();

                }



                /* 2414 */
                bx = SkillFactory.getSkill(4120043);
                /* 2415 */
                bof = chra.getTotalSkillLevel(bx);
                /* 2416 */
                if (bof > 0 && bx != null) {
                    /* 2417 */
                    addDamageIncrease(4121017, bx.getEffect(bof).getDAMRate());

                }
                /* 2419 */
                bx = SkillFactory.getSkill(4120044);
                /* 2420 */
                bof = chra.getTotalSkillLevel(bx);
                /* 2421 */
                if (bof > 0 && bx != null) {
                    /* 2422 */
                    addTargetPlus(4121017, bx.getId(), bx.getEffect(bof).getTargetPlus());

                }





                /* 2429 */
                bx = SkillFactory.getSkill(4120048);
                /* 2430 */
                bof = chra.getTotalSkillLevel(bx);
                /* 2431 */
                if (bof > 0 && bx != null) {
                    /* 2432 */
                    addCoolTimeReduce(4121015, bx.getEffect(bof).getCooltimeReduceR());

                }
                /* 2434 */
                bx = SkillFactory.getSkill(4120049);
                /* 2435 */
                bof = chra.getTotalSkillLevel(bx);
                /* 2436 */
                if (bof > 0 && bx != null) {
                    /* 2437 */
                    addDamageIncrease(4121013, bx.getEffect(bof).getDAMRate());

                }
                /* 2439 */
                bx = SkillFactory.getSkill(4120050);
                /* 2440 */
                bof = chra.getTotalSkillLevel(bx);
                /* 2441 */
                if (bof > 0 && bx != null) {
                    /* 2442 */
                    this.percent_boss_damage_rate += bx.getEffect(bof).getBossDamage();

                }
                /* 2444 */
                bx = SkillFactory.getSkill(4120051);
                /* 2445 */
                bof = chra.getTotalSkillLevel(bx);
                /* 2446 */
                if (bof > 0 && bx != null) {
                    /* 2447 */
                    addAttackCount(4121013, bx.getEffect(bof).getBulletCount());

                }

                break;


            case 420:

            case 421:

            case 422:
                /* 2454 */
                bx = SkillFactory.getSkill(4200007);
                /* 2455 */
                bof = chra.getTotalSkillLevel(bx);
                /* 2456 */
                if (bof > 0 && bx != null) {
                    /* 2457 */
                    eff = bx.getEffect(bof);
                    /* 2458 */
                    this.localluk += eff.getLukX();
                    /* 2459 */
                    this.localdex += eff.getDexX();

                }
                /* 2461 */
                bx = SkillFactory.getSkill(4210013);
                /* 2462 */
                bof = chra.getTotalSkillLevel(bx);
                /* 2463 */
                if (bof > 0 && bx != null) {
                    /* 2464 */
                    eff = bx.getEffect(bof);
                    /* 2465 */
                    this.percent_hp += eff.getPercentHP();
                    /* 2466 */
                    this.ASR += eff.getASRRate();
                    /* 2467 */
                    this.TER += eff.getTERRate();

                }
                /* 2469 */
                bx = SkillFactory.getSkill(4200010);
                /* 2470 */
                bof = chra.getTotalSkillLevel(bx);
                /* 2471 */
                shield = chra.getInventory(MapleInventoryType.EQUIPPED).getItem((short) -10);
                /* 2472 */
                if (bof > 0 && bx != null && shield != null) {
                    /* 2473 */
                    eff = bx.getEffect(bof);
                    /* 2474 */
                    this.percent_wdef += eff.getX();
                    /* 2475 */
                    this.percent_mdef += eff.getX();
                    /* 2476 */
                    this.dodgeChance += eff.getER();

                }
                /* 2478 */
                bx = SkillFactory.getSkill(4210012);
                /* 2479 */
                bof = chra.getTotalSkillLevel(bx);
                /* 2480 */
                if (bof > 0 && bx != null) {
                    /* 2481 */
                    eff = bx.getEffect(bof);
                    /* 2482 */
                    this.mesoBuff *= (eff.getMesoRate() + 100.0D) / 100.0D;
                    /* 2483 */
                    this.pickRate += eff.getU();
                    /* 2484 */
                    this.mesoGuard -= eff.getV();
                    /* 2485 */
                    this.mesoGuardMeso -= eff.getW();
                    /* 2486 */
                    addDamageIncrease(4211006, eff.getX());

                }
                /* 2488 */
                bx = SkillFactory.getSkill(4221013);
                /* 2489 */
                bof = chra.getTotalSkillLevel(bx);
                /* 2490 */
                if (bof > 0 && bx != null) {
                    /* 2491 */
                    this.percent_ignore_mob_def_rate += bx.getEffect(bof).getIgnoreMob();

                }
                /* 2493 */
                bx = SkillFactory.getSkill(4221007);
                /* 2494 */
                bof = chra.getTotalSkillLevel(bx);
                /* 2495 */
                if (bof > 0 && bx != null) {
                    /* 2496 */
                    eff = bx.getEffect(bof);
                    /* 2497 */
                    addDamageIncrease(4201012, eff.getDAMRate());
                    /* 2498 */
                    addDamageIncrease(4201004, eff.getDAMRate());
                    /* 2499 */
                    addDamageIncrease(4211002, eff.getDAMRate());
                    /* 2500 */
                    addDamageIncrease(4211011, eff.getDAMRate());

                }



                /* 2505 */
                bx = SkillFactory.getSkill(4220043);
                /* 2506 */
                bof = chra.getTotalSkillLevel(bx);
                /* 2507 */
                if (bof > 0 && bx != null) {
                    /* 2508 */
                    addDamageIncrease(4211006, bx.getEffect(bof).getDAMRate());

                }
                /* 2510 */
                bx = SkillFactory.getSkill(4220046);
                /* 2511 */
                bof = chra.getTotalSkillLevel(bx);
                /* 2512 */
                if (bof > 0 && bx != null) {
                    /* 2513 */
                    addDamageIncrease(4221007, bx.getEffect(bof).getDAMRate());

                }
                /* 2515 */
                bx = SkillFactory.getSkill(4220047);
                /* 2516 */
                bof = chra.getTotalSkillLevel(bx);
                /* 2517 */
                if (bof > 0 && bx != null) {
                    /* 2518 */
                    addTargetPlus(4221007, bx.getId(), bx.getEffect(bof).getTargetPlus());

                }
                /* 2520 */
                bx = SkillFactory.getSkill(4220048);
                /* 2521 */
                bof = chra.getTotalSkillLevel(bx);
                /* 2522 */
                if (bof > 0 && bx != null) {
                    /* 2523 */
                    addAttackCount(4221007, bx.getEffect(bof).getAttackCount());

                }
                /* 2525 */
                bx = SkillFactory.getSkill(4220049);
                /* 2526 */
                bof = chra.getTotalSkillLevel(bx);
                /* 2527 */
                if (bof > 0 && bx != null) {
                    /* 2528 */
                    addDamageIncrease(4221014, bx.getEffect(bof).getDAMRate());

                }

                break;


            case 431:

            case 432:

            case 433:

            case 434:
                /* 2536 */
                bx = SkillFactory.getSkill(4310006);
                /* 2537 */
                bof = chra.getTotalSkillLevel(bx);
                /* 2538 */
                if (bof > 0 && bx != null) {
                    /* 2539 */
                    eff = bx.getEffect(bof);
                    /* 2540 */
                    this.localluk += eff.getLukX();
                    /* 2541 */
                    this.localdex += eff.getDexX();

                }
                /* 2543 */
                bx = SkillFactory.getSkill(4330007);
                /* 2544 */
                bof = chra.getTotalSkillLevel(bx);
                /* 2545 */
                if (bof > 0 && bx != null) {
                    /* 2546 */
                    eff = bx.getEffect(bof);
                    /* 2547 */
                    this.hpRecoverProp += eff.getProp();
                    /* 2548 */
                    this.hpRecover_Percent += eff.getX();

                }
                /* 2550 */
                bx = SkillFactory.getSkill(4330008);
                /* 2551 */
                bof = chra.getTotalSkillLevel(bx);
                /* 2552 */
                if (bof > 0 && bx != null) {
                    /* 2553 */
                    eff = bx.getEffect(bof);
                    /* 2554 */
                    this.percent_hp += eff.getPercentHP();
                    /* 2555 */
                    this.ASR += eff.getASRRate();

                }
                /* 2557 */
                bx = SkillFactory.getSkill(4330009);
                /* 2558 */
                bof = chra.getTotalSkillLevel(bx);
                /* 2559 */
                if (bof > 0 && bx != null) {
                    /* 2560 */
                    this.dodgeChance += bx.getEffect(bof).getER();

                }
                /* 2562 */
                bx = SkillFactory.getSkill(4341006);
                /* 2563 */
                bof = chra.getTotalSkillLevel(bx);
                /* 2564 */
                if (bof > 0 && bx != null) {
                    /* 2565 */
                    eff = bx.getEffect(bof);
                    /* 2566 */
                    this.percent_wdef += eff.getWDEFRate();
                    /* 2567 */
                    this.percent_mdef += eff.getMDEFRate();
                    /* 2568 */
                    this.dodgeChance += eff.getER();

                }
                /* 2570 */
                bx = SkillFactory.getSkill(4341002);
                /* 2571 */
                bof = chra.getTotalSkillLevel(bx);
                /* 2572 */
                if (bof > 0 && bx != null) {
                    /* 2573 */
                    eff = bx.getEffect(bof);
                    /* 2574 */
                    addDamageIncrease(4311002, eff.getDAMRate());
                    /* 2575 */
                    addDamageIncrease(4311003, eff.getDAMRate());
                    /* 2576 */
                    addDamageIncrease(4301004, eff.getDAMRate());
                    /* 2577 */
                    addDamageIncrease(4331000, eff.getDAMRate());
                    /* 2578 */
                    addDamageIncrease(4321004, eff.getDAMRate());
                    /* 2579 */
                    addDamageIncrease(4321006, eff.getDAMRate());

                }



                /* 2584 */
                bx = SkillFactory.getSkill(4340043);
                /* 2585 */
                bof = chra.getTotalSkillLevel(bx);
                /* 2586 */
                if (bof > 0 && bx != null) {
                    /* 2587 */
                    addDamageIncrease(4331000, bx.getEffect(bof).getDAMRate());

                }
                /* 2589 */
                bx = SkillFactory.getSkill(4340044);
                /* 2590 */
                bof = chra.getTotalSkillLevel(bx);
                /* 2591 */
                if (bof > 0 && bx != null) {
                    /* 2592 */
                    addTargetPlus(4331000, bx.getId(), bx.getEffect(bof).getTargetPlus());

                }
                /* 2594 */
                bx = SkillFactory.getSkill(4340045);
                /* 2595 */
                bof = chra.getTotalSkillLevel(bx);
                /* 2596 */
                if (bof > 0 && bx != null) {
                    /* 2597 */
                    addAttackCount(4331000, bx.getEffect(bof).getAttackCount());

                }
                /* 2599 */
                bx = SkillFactory.getSkill(4340046);
                /* 2600 */
                bof = chra.getTotalSkillLevel(bx);
                /* 2601 */
                if (bof > 0 && bx != null) {
                    /* 2602 */
                    addDamageIncrease(4341009, bx.getEffect(bof).getDAMRate());

                }
                /* 2604 */
                bx = SkillFactory.getSkill(4340047);
                /* 2605 */
                bof = chra.getTotalSkillLevel(bx);
                /* 2606 */
                if (bof > 0 && bx != null) {
                    /* 2607 */
                    addIgnoreMobpdpRate(4341009, bx.getEffect(bof).getIgnoreMob());

                }
                /* 2609 */
                bx = SkillFactory.getSkill(4340048);
                /* 2610 */
                bof = chra.getTotalSkillLevel(bx);
                /* 2611 */
                if (bof > 0 && bx != null) {
                    /* 2612 */
                    addAttackCount(4341009, bx.getEffect(bof).getAttackCount());

                }
                /* 2614 */
                bx = SkillFactory.getSkill(4340055);
                /* 2615 */
                bof = chra.getTotalSkillLevel(bx);
                /* 2616 */
                if (bof > 0 && bx != null) {
                    /* 2617 */
                    addDamageIncrease(4341004, bx.getEffect(bof).getDAMRate());

                }
                /* 2619 */
                bx = SkillFactory.getSkill(4340056);
                /* 2620 */
                bof = chra.getTotalSkillLevel(bx);
                /* 2621 */
                if (bof > 0 && bx != null) {
                    /* 2622 */
                    addIgnoreMobpdpRate(4341004, bx.getEffect(bof).getIgnoreMob());

                }
                /* 2624 */
                bx = SkillFactory.getSkill(4340057);
                /* 2625 */
                bof = chra.getTotalSkillLevel(bx);
                /* 2626 */
                if (bof > 0 && bx != null) {
                    /* 2627 */
                    addTargetPlus(4341004, bx.getId(), bx.getEffect(bof).getTargetPlus());

                }


                /* 2631 */
                bx = SkillFactory.getSkill(400004128);
                /* 2632 */
                bof = chra.getTotalSkillLevel(bx);
                /* 2633 */
                if (bof > 0 && bx != null) {
                    /* 2634 */
                    addTargetPlus(4341002, bx.getId(), bx.getEffect(bof).getTargetPlus());
                    /* 2635 */
                    addIgnoreMobpdpRate(4341002, bx.getEffect(bof).getIgnoreMobpdpR());

                }
                /* 2637 */
                bx = SkillFactory.getSkill(400004129);
                /* 2638 */
                bof = chra.getTotalSkillLevel(bx);
                /* 2639 */
                if (bof > 0 && bx != null) {
                    /* 2640 */
                    addTargetPlus(4341004, bx.getId(), bx.getEffect(bof).getTargetPlus());
                    /* 2641 */
                    addIgnoreMobpdpRate(4341004, bx.getEffect(bof).getIgnoreMobpdpR());

                }
                /* 2643 */
                bx = SkillFactory.getSkill(400004130);
                /* 2644 */
                bof = chra.getTotalSkillLevel(bx);
                /* 2645 */
                if (bof > 0 && bx != null) {
                    /* 2646 */
                    addTargetPlus(4341009, bx.getId(), bx.getEffect(bof).getTargetPlus());
                    /* 2647 */
                    addIgnoreMobpdpRate(4341009, bx.getEffect(bof).getIgnoreMobpdpR());

                }
                /* 2649 */
                bx = SkillFactory.getSkill(400004132);
                /* 2650 */
                bof = chra.getTotalSkillLevel(bx);
                /* 2651 */
                if (bof > 0 && bx != null) {
                    /* 2652 */
                    addTargetPlus(4341052, bx.getId(), bx.getEffect(bof).getTargetPlus());
                    /* 2653 */
                    addIgnoreMobpdpRate(4341052, bx.getEffect(bof).getIgnoreMobpdpR());

                }

                break;


            case 510:

            case 511:

            case 512:
                /* 2660 */
                bx = SkillFactory.getSkill(5100009);
                /* 2661 */
                bof = chra.getTotalSkillLevel(bx);
                /* 2662 */
                if (bof > 0 && bx != null) {
                    /* 2663 */
                    this.percent_hp += bx.getEffect(bof).getPercentHP();

                }
                /* 2665 */
                bx = SkillFactory.getSkill(5100010);
                /* 2666 */
                bof = chra.getTotalSkillLevel(bx);
                /* 2667 */
                if (bof > 0 && bx != null) {
                    /* 2668 */
                    eff = bx.getEffect(bof);
                    /* 2669 */
                    this.localstr += eff.getStrX();
                    /* 2670 */
                    this.localdex += eff.getDexX();

                }
                /* 2672 */
                bx = SkillFactory.getSkill(5121015);
                /* 2673 */
                bof = chra.getTotalSkillLevel(bx);
                /* 2674 */
                if (bof > 0 && bx != null) {
                    /* 2675 */
                    eff = bx.getEffect(bof);
                    /* 2676 */
                    this.ASR += eff.getASRRate();

                }
                /* 2678 */
                bx = SkillFactory.getSkill(5120014);
                /* 2679 */
                bof = chra.getTotalSkillLevel(bx);
                /* 2680 */
                if (bof > 0 && bx != null) {
                    /* 2681 */
                    this.percent_ignore_mob_def_rate += bx.getEffect(bof).getX();

                }
                /* 2683 */
                energyrate = (chra.getBuffedValue(MapleBuffStat.能量获得) != null && chra.getSpecialStat().isEnergyFull()) ? 1.0D : 0.5D;
                /* 2684 */
                if (chra.getTotalSkillLevel(5120018) > 0) {
                    /* 2685 */
                    bx = SkillFactory.getSkill(5120018);
                    /* 2686 */
                    bof = chra.getTotalSkillLevel(bx);
                    /* 2687 */
                    eff = bx.getEffect(bof);
                    /* 2688 */
                    this.watk = (int) (this.watk + eff.getWatk() * energyrate);
                    /* 2689 */
                    this.wdef = (int) (this.wdef + eff.getEnhancedWdef() * energyrate);
                    /* 2690 */
                    this.mdef = (int) (this.mdef + eff.getEnhancedMdef() * energyrate);
                    /* 2691 */
                    this.speed = (int) (this.speed + eff.getSpeed() * energyrate);
                    /* 2692 */
                    this.accuracy = (int) (this.accuracy + eff.getAcc() * energyrate);
                    /* 2693 */
                } else if (chra.getTotalSkillLevel(5110014) > 0) {
                    /* 2694 */
                    bx = SkillFactory.getSkill(5110014);
                    /* 2695 */
                    bof = chra.getTotalSkillLevel(bx);
                    /* 2696 */
                    eff = bx.getEffect(bof);
                    /* 2697 */
                    this.watk = (int) (this.watk + eff.getWatk() * energyrate);
                    /* 2698 */
                    this.wdef = (int) (this.wdef + eff.getEnhancedWdef() * energyrate);
                    /* 2699 */
                    this.mdef = (int) (this.mdef + eff.getEnhancedMdef() * energyrate);
                    /* 2700 */
                    this.speed = (int) (this.speed + eff.getSpeed() * energyrate);
                    /* 2701 */
                    this.accuracy = (int) (this.accuracy + eff.getAcc() * energyrate);
                    /* 2702 */
                } else if (chra.getTotalSkillLevel(5100015) > 0) {
                    /* 2703 */
                    bx = SkillFactory.getSkill(5100015);
                    /* 2704 */
                    bof = chra.getTotalSkillLevel(bx);
                    /* 2705 */
                    eff = bx.getEffect(bof);
                    /* 2706 */
                    this.wdef = (int) (this.wdef + eff.getEnhancedWdef() * energyrate);
                    /* 2707 */
                    this.mdef = (int) (this.mdef + eff.getEnhancedMdef() * energyrate);
                    /* 2708 */
                    this.speed = (int) (this.speed + eff.getSpeed() * energyrate);
                    /* 2709 */
                    this.accuracy = (int) (this.accuracy + eff.getAcc() * energyrate);

                }



                /* 2714 */
                bx = SkillFactory.getSkill(5120046);
                /* 2715 */
                bof = chra.getTotalSkillLevel(bx);
                /* 2716 */
                if (bof > 0 && bx != null) {
                    /* 2717 */
                    addDamageIncrease(5121007, bx.getEffect(bof).getDAMRate());
                    /* 2718 */
                    addDamageIncrease(5121020, bx.getEffect(bof).getDAMRate());

                }
                /* 2720 */
                bx = SkillFactory.getSkill(5120047);
                /* 2721 */
                bof = chra.getTotalSkillLevel(bx);
                /* 2722 */
                if (bof > 0 && bx != null) {
                    /* 2723 */
                    addBossDamageRate(5121007, bx.getEffect(bof).getBossDamage());
                    /* 2724 */
                    addBossDamageRate(5121020, bx.getEffect(bof).getBossDamage());

                }
                /* 2726 */
                bx = SkillFactory.getSkill(5120048);
                /* 2727 */
                bof = chra.getTotalSkillLevel(bx);
                /* 2728 */
                if (bof > 0 && bx != null) {
                    /* 2729 */
                    addAttackCount(5121007, bx.getEffect(bof).getAttackCount());
                    /* 2730 */
                    addAttackCount(5121020, bx.getEffect(bof).getAttackCount());

                }
                /* 2732 */
                bx = SkillFactory.getSkill(5120049);
                /* 2733 */
                bof = chra.getTotalSkillLevel(bx);
                /* 2734 */
                if (bof > 0 && bx != null) {
                    /* 2735 */
                    addDamageIncrease(5121016, bx.getEffect(bof).getDAMRate());
                    /* 2736 */
                    addDamageIncrease(5121017, bx.getEffect(bof).getDAMRate());

                }
                /* 2738 */
                bx = SkillFactory.getSkill(5120050);
                /* 2739 */
                bof = chra.getTotalSkillLevel(bx);
                /* 2740 */
                if (bof > 0 && bx != null) {
                    /* 2741 */
                    addTargetPlus(5121016, bx.getId(), bx.getEffect(bof).getTargetPlus());
                    /* 2742 */
                    addTargetPlus(5121017, bx.getId(), bx.getEffect(bof).getTargetPlus());

                }
                /* 2744 */
                bx = SkillFactory.getSkill(5120051);
                /* 2745 */
                bof = chra.getTotalSkillLevel(bx);
                /* 2746 */
                if (bof > 0 && bx != null) {
                    /* 2747 */
                    addAttackCount(5121016, bx.getEffect(bof).getAttackCount());
                    /* 2748 */
                    addAttackCount(5121017, bx.getEffect(bof).getAttackCount());

                }


                /* 2752 */
                bx = SkillFactory.getSkill(400004141);
                /* 2753 */
                bof = chra.getTotalSkillLevel(bx);
                /* 2754 */
                if (bof > 0 && bx != null) {
                    /* 2755 */
                    addTargetPlus(5121001, bx.getId(), bx.getEffect(bof).getTargetPlus());
                    /* 2756 */
                    addIgnoreMobpdpRate(5121001, bx.getEffect(bof).getIgnoreMobpdpR());

                }
                /* 2758 */
                bx = SkillFactory.getSkill(400004144);
                /* 2759 */
                bof = chra.getTotalSkillLevel(bx);
                /* 2760 */
                if (bof > 0 && bx != null) {
                    /* 2761 */
                    addTargetPlus(5121016, bx.getId(), bx.getEffect(bof).getTargetPlus());
                    /* 2762 */
                    addIgnoreMobpdpRate(5121016, bx.getEffect(bof).getIgnoreMobpdpR());

                }
                /* 2764 */
                bx = SkillFactory.getSkill(400004145);
                /* 2765 */
                bof = chra.getTotalSkillLevel(bx);
                /* 2766 */
                if (bof > 0 && bx != null) {
                    /* 2767 */
                    addTargetPlus(5121052, bx.getId(), bx.getEffect(bof).getTargetPlus());
                    /* 2768 */
                    addIgnoreMobpdpRate(5121052, bx.getEffect(bof).getIgnoreMobpdpR());

                }

                break;


            case 520:

            case 521:

            case 522:
                /* 2775 */
                bx = SkillFactory.getSkill(5200009);
                /* 2776 */
                bof = chra.getTotalSkillLevel(bx);
                /* 2777 */
                if (bof > 0 && bx != null) {
                    /* 2778 */
                    eff = bx.getEffect(bof);
                    /* 2779 */
                    this.localstr += eff.getStrX();
                    /* 2780 */
                    this.localdex += eff.getDexX();

                }
                /* 2782 */
                if ((eff = chra.getSkillEffect(5220020)) != null) {
                    /* 2783 */
                    this.finalSkillID = eff.getSourceid();

                }



                /* 2788 */
                bx = SkillFactory.getSkill(5220049);
                /* 2789 */
                bof = chra.getTotalSkillLevel(bx);
                /* 2790 */
                if (bof > 0 && bx != null) {
                    /* 2791 */
                    addDamageIncrease(5221004, bx.getEffect(bof).getDAMRate());

                }
                /* 2793 */
                bx = SkillFactory.getSkill(5220051);
                /* 2794 */
                bof = chra.getTotalSkillLevel(bx);
                /* 2795 */
                if (bof > 0 && bx != null) {
                    /* 2796 */
                    this.percent_boss_damage_rate += bx.getEffect(bof).getBossDamage();

                }


                /* 2800 */
                bx = SkillFactory.getSkill(400004152);
                /* 2801 */
                bof = chra.getTotalSkillLevel(bx);
                /* 2802 */
                if (bof > 0 && bx != null) {
                    /* 2803 */
                    addTargetPlus(5211014, bx.getId(), bx.getEffect(bof).getTargetPlus());
                    /* 2804 */
                    addIgnoreMobpdpRate(5211014, bx.getEffect(bof).getIgnoreMobpdpR());

                }
                /* 2806 */
                bx = SkillFactory.getSkill(400004151);
                /* 2807 */
                bof = chra.getTotalSkillLevel(bx);
                /* 2808 */
                if (bof > 0 && bx != null) {
                    /* 2809 */
                    addTargetPlus(5211010, bx.getId(), bx.getEffect(bof).getTargetPlus());
                    /* 2810 */
                    addIgnoreMobpdpRate(5211010, bx.getEffect(bof).getIgnoreMobpdpR());

                }
                /* 2812 */
                bx = SkillFactory.getSkill(400004156);
                /* 2813 */
                bof = chra.getTotalSkillLevel(bx);
                /* 2814 */
                if (bof > 0 && bx != null) {
                    /* 2815 */
                    addTargetPlus(5221017, bx.getId(), bx.getEffect(bof).getTargetPlus());
                    /* 2816 */
                    addIgnoreMobpdpRate(5221017, bx.getEffect(bof).getIgnoreMobpdpR());

                }
                /* 2818 */
                bx = SkillFactory.getSkill(400004158);
                /* 2819 */
                bof = chra.getTotalSkillLevel(bx);
                /* 2820 */
                if (bof > 0 && bx != null) {
                    /* 2821 */
                    addTargetPlus(5221022, bx.getId(), bx.getEffect(bof).getTargetPlus());
                    /* 2822 */
                    addTargetPlus(5220023, bx.getId(), bx.getEffect(bof).getTargetPlus());
                    /* 2823 */
                    addTargetPlus(5220024, bx.getId(), bx.getEffect(bof).getTargetPlus());
                    /* 2824 */
                    addTargetPlus(5220025, bx.getId(), bx.getEffect(bof).getTargetPlus());
                    /* 2825 */
                    addIgnoreMobpdpRate(5221022, bx.getEffect(bof).getIgnoreMobpdpR());
                    /* 2826 */
                    addIgnoreMobpdpRate(5220023, bx.getEffect(bof).getIgnoreMobpdpR());
                    /* 2827 */
                    addIgnoreMobpdpRate(5220024, bx.getEffect(bof).getIgnoreMobpdpR());
                    /* 2828 */
                    addIgnoreMobpdpRate(5220025, bx.getEffect(bof).getIgnoreMobpdpR());

                }

                break;


            case 501:

            case 530:

            case 531:

            case 532:
                /* 2836 */
                bx = SkillFactory.getSkill(5010003);
                /* 2837 */
                bof = chra.getTotalSkillLevel(bx);
                /* 2838 */
                if (bof > 0 && bx != null) {
                    /* 2839 */
                    this.watk += bx.getEffect(bof).getAttackX();

                }
                /* 2841 */
                bx = SkillFactory.getSkill(5300008);
                /* 2842 */
                bof = chra.getTotalSkillLevel(bx);
                /* 2843 */
                if (bof > 0 && bx != null) {
                    /* 2844 */
                    eff = bx.getEffect(bof);
                    /* 2845 */
                    this.localstr += eff.getStrX();
                    /* 2846 */
                    this.localdex += eff.getDexX();

                }
                /* 2848 */
                bx = SkillFactory.getSkill(5311001);
                /* 2849 */
                bof = chra.getTotalSkillLevel(bx);
                /* 2850 */
                if (bof > 0 && bx != null) {
                    /* 2851 */
                    addDamageIncrease(5301001, bx.getEffect(bof).getDAMRate());

                }
                /* 2853 */
                bx = SkillFactory.getSkill(5310007);
                /* 2854 */
                bof = chra.getTotalSkillLevel(bx);
                /* 2855 */
                if (bof > 0 && bx != null) {
                    /* 2856 */
                    eff = bx.getEffect(bof);
                    /* 2857 */
                    this.percent_hp += eff.getPercentHP();
                    /* 2858 */
                    this.ASR += eff.getASRRate();
                    /* 2859 */
                    this.percent_wdef += eff.getWDEFRate();

                }
                /* 2861 */
                bx = SkillFactory.getSkill(5310006);
                /* 2862 */
                bof = chra.getTotalSkillLevel(bx);
                /* 2863 */
                if (bof > 0 && bx != null) {
                    /* 2864 */
                    this.watk += bx.getEffect(bof).getAttackX();

                }
                /* 2866 */
                bx = SkillFactory.getSkill(5320009);
                /* 2867 */
                bof = chra.getTotalSkillLevel(bx);
                /* 2868 */
                if (bof > 0 && bx != null) {
                    /* 2869 */
                    eff = bx.getEffect(bof);
                    /* 2870 */
                    this.percent_damage_rate += eff.getDAMRate();
                    /* 2871 */
                    this.percent_boss_damage_rate += eff.getDAMRate();
                    /* 2872 */
                    this.percent_ignore_mob_def_rate += eff.getIgnoreMob();

                }



                /* 2877 */
                bx = SkillFactory.getSkill(5320043);
                /* 2878 */
                bof = chra.getTotalSkillLevel(bx);
                /* 2879 */
                if (bof > 0 && bx != null) {
                    /* 2880 */
                    addAttackCount(5321004, bx.getEffect(bof).getAttackCount());

                }
                /* 2882 */
                bx = SkillFactory.getSkill(5320044);
                /* 2883 */
                bof = chra.getTotalSkillLevel(bx);
                /* 2884 */
                if (bof > 0 && bx != null) {
                    /* 2885 */
                    addBuffDuration(5321004, bx.getEffect(bof).getDuration());

                }
                /* 2887 */
                bx = SkillFactory.getSkill(5320046);
                /* 2888 */
                bof = chra.getTotalSkillLevel(bx);
                /* 2889 */
                if (bof > 0 && bx != null) {
                    /* 2890 */
                    addDamageIncrease(5321000, bx.getEffect(bof).getDAMRate());

                }
                /* 2892 */
                bx = SkillFactory.getSkill(5320047);
                /* 2893 */
                bof = chra.getTotalSkillLevel(bx);
                /* 2894 */
                if (bof > 0 && bx != null) {
                    /* 2895 */
                    addTargetPlus(5321000, bx.getId(), bx.getEffect(bof).getTargetPlus());

                }
                /* 2897 */
                bx = SkillFactory.getSkill(5320048);
                /* 2898 */
                bof = chra.getTotalSkillLevel(bx);
                /* 2899 */
                if (bof > 0 && bx != null) {
                    /* 2900 */
                    addAttackCount(5321000, bx.getEffect(bof).getAttackCount());

                }
                /* 2902 */
                bx = SkillFactory.getSkill(5320049);
                /* 2903 */
                bof = chra.getTotalSkillLevel(bx);
                /* 2904 */
                if (bof > 0 && bx != null) {
                    /* 2905 */
                    addDamageIncrease(5321012, bx.getEffect(bof).getDAMRate());

                }
                /* 2907 */
                bx = SkillFactory.getSkill(5320051);
                /* 2908 */
                bof = chra.getTotalSkillLevel(bx);
                /* 2909 */
                if (bof > 0 && bx != null) {
                    /* 2910 */
                    addAttackCount(5321012, bx.getEffect(bof).getAttackCount());

                }


                /* 2914 */
                bx = SkillFactory.getSkill(400004173);
                /* 2915 */
                bof = chra.getTotalSkillLevel(bx);
                /* 2916 */
                if (bof > 0 && bx != null) {
                    /* 2917 */
                    addTargetPlus(5321000, bx.getId(), bx.getEffect(bof).getTargetPlus());
                    /* 2918 */
                    addIgnoreMobpdpRate(5321000, bx.getEffect(bof).getIgnoreMobpdpR());

                }
                /* 2920 */
                bx = SkillFactory.getSkill(400004175);
                /* 2921 */
                bof = chra.getTotalSkillLevel(bx);
                /* 2922 */
                if (bof > 0 && bx != null) {
                    /* 2923 */
                    addTargetPlus(5321003, bx.getId(), bx.getEffect(bof).getTargetPlus());
                    /* 2924 */
                    addIgnoreMobpdpRate(5321003, bx.getEffect(bof).getIgnoreMobpdpR());

                }
                /* 2926 */
                bx = SkillFactory.getSkill(400004176);
                /* 2927 */
                bof = chra.getTotalSkillLevel(bx);
                /* 2928 */
                if (bof > 0 && bx != null) {
                    /* 2929 */
                    addTargetPlus(5321004, bx.getId(), bx.getEffect(bof).getTargetPlus());
                    /* 2930 */
                    addIgnoreMobpdpRate(5321004, bx.getEffect(bof).getIgnoreMobpdpR());

                }
                /* 2932 */
                bx = SkillFactory.getSkill(400004178);
                /* 2933 */
                bof = chra.getTotalSkillLevel(bx);
                /* 2934 */
                if (bof > 0 && bx != null) {
                    /* 2935 */
                    addTargetPlus(5321052, bx.getId(), bx.getEffect(bof).getTargetPlus());
                    /* 2936 */
                    addIgnoreMobpdpRate(5321052, bx.getEffect(bof).getIgnoreMobpdpR());

                }

                break;


            case 508:

            case 570:

            case 571:

            case 572:
                /* 2944 */
                bx = SkillFactory.getSkill(5080022);
                /* 2945 */
                bof = chra.getTotalSkillLevel(bx);
                /* 2946 */
                if (bof > 0 && bx != null) {
                    /* 2947 */
                    eff = bx.getEffect(bof);
                    /* 2948 */
                    this.defRange += eff.getRange();
                    /* 2949 */
                    this.accuracy += eff.getAcc();
                    /* 2950 */
                    this.speed += eff.getPsdSpeed();
                    /* 2951 */
                    this.speedMax += eff.getSpeedMax();

                }
                /* 2953 */
                bx = SkillFactory.getSkill(5700011);
                /* 2954 */
                bof = chra.getTotalSkillLevel(bx);
                /* 2955 */
                if (bof > 0 && bx != null) {
                    /* 2956 */
                    eff = bx.getEffect(bof);
                    /* 2957 */
                    this.localstr += eff.getStrX();
                    /* 2958 */
                    this.localdex += eff.getDexX();
                    /* 2959 */
                    this.percent_hp += eff.getPercentHP();
                    /* 2960 */
                    this.percent_mp += eff.getPercentMP();

                }
                /* 2962 */
                bx = SkillFactory.getSkill(5710022);
                /* 2963 */
                bof = chra.getTotalSkillLevel(bx);
                /* 2964 */
                if (bof > 0 && bx != null) {
                    /* 2965 */
                    eff = bx.getEffect(bof);
                    /* 2966 */
                    this.percent_damage_rate += eff.getDAMRate();
                    /* 2967 */
                    this.percent_boss_damage_rate += eff.getDAMRate();
                    /* 2968 */
                    this.percent_ignore_mob_def_rate += eff.getIgnoreMob();

                }
                /* 2970 */
                bx = SkillFactory.getSkill(5720061);
                /* 2971 */
                bof = chra.getTotalSkillLevel(bx);
                /* 2972 */
                if (bof > 0 && bx != null) {
                    /* 2973 */
                    eff = bx.getEffect(bof);
                    /* 2974 */
                    this.percent_hp += eff.getPercentHP();

                }



                /* 2979 */
                bx = SkillFactory.getSkill(5720044);
                /* 2980 */
                bof = chra.getTotalSkillLevel(bx);
                /* 2981 */
                if (bof > 0 && bx != null) {
                    /* 2982 */
                    addTargetPlus(5721061, bx.getId(), bx.getEffect(bof).getTargetPlus());

                }
                /* 2984 */
                bx = SkillFactory.getSkill(5720045);
                /* 2985 */
                bof = chra.getTotalSkillLevel(bx);
                /* 2986 */
                if (bof > 0 && bx != null) {
                    /* 2987 */
                    addAttackCount(5721061, bx.getEffect(bof).getAttackCount());

                }
                /* 2989 */
                bx = SkillFactory.getSkill(5720048);
                /* 2990 */
                bof = chra.getTotalSkillLevel(bx);
                /* 2991 */
                if (bof > 0 && bx != null) {
                    /* 2992 */
                    addAttackCount(5721064, bx.getEffect(bof).getAttackCount());

                }

                break;





            case 1100:

            case 1110:

            case 1111:

            case 1112:
                /* 3003 */
                bx = SkillFactory.getSkill(11000023);
                /* 3004 */
                bof = chra.getTotalSkillLevel(bx);
                /* 3005 */
                if (bof > 0 && bx != null) {
                    /* 3006 */
                    eff = bx.getEffect(bof);
                    /* 3007 */
                    this.percent_hp += eff.getPercentHP();
                    /* 3008 */
                    this.percent_wdef += eff.getWdefX();
                    /* 3009 */
                    this.percent_mdef += eff.getMdefX();
                    /* 3010 */
                    this.speed += eff.getPsdSpeed();
                    /* 3011 */
                    this.jump += eff.getPsdJump();
                    /* 3012 */
                    this.speedMax += eff.getSpeedMax();

                }
                /* 3014 */
                bx = SkillFactory.getSkill(11001022);
                /* 3015 */
                bof = chra.getTotalSkillLevel(bx);
                /* 3016 */
                if (bof > 0 && bx != null) {
                    /* 3017 */
                    this.percent_ignore_mob_def_rate += bx.getEffect(bof).getIgnoreMob();

                }
                /* 3019 */
                bx = SkillFactory.getSkill(11100026);
                /* 3020 */
                bof = chra.getTotalSkillLevel(bx);
                /* 3021 */
                if (bof > 0 && bx != null) {
                    /* 3022 */
                    eff = bx.getEffect(bof);
                    /* 3023 */
                    this.localstr += eff.getStrX();
                    /* 3024 */
                    this.localdex += eff.getDexX();

                }
                /* 3026 */
                bx = SkillFactory.getSkill(11110025);
                /* 3027 */
                bof = chra.getTotalSkillLevel(bx);
                /* 3028 */
                if (bof > 0 && bx != null) {
                    /* 3029 */
                    eff = bx.getEffect(bof);
                    /* 3030 */
                    this.ASR += eff.getASRRate();
                    /* 3031 */
                    this.TER += eff.getTERRate();

                }
                /* 3033 */
                bx = SkillFactory.getSkill(11110026);
                /* 3034 */
                bof = chra.getTotalSkillLevel(bx);
                /* 3035 */
                if (bof > 0 && bx != null) {
                    /* 3036 */
                    eff = bx.getEffect(bof);
                    /* 3037 */
                    this.watk += eff.getAttackX();
                    /* 3038 */
                    this.localstr += eff.getStrX();

                }
                /* 3040 */
                bx = SkillFactory.getSkill(11120008);
                /* 3041 */
                bof = chra.getTotalSkillLevel(bx);
                /* 3042 */
                if (bof > 0 && bx != null) {
                    /* 3043 */
                    this.percent_ignore_mob_def_rate += bx.getEffect(bof).getIgnoreMob();

                }



                /* 3048 */
                bx = SkillFactory.getSkill(11120046);
                /* 3049 */
                bof = chra.getTotalSkillLevel(bx);
                /* 3050 */
                if (bof > 0 && bx != null) {
                    /* 3051 */
                    addDamageIncrease(11121103, bx.getEffect(bof).getDAMRate());
                    /* 3052 */
                    addDamageIncrease(11121203, bx.getEffect(bof).getDAMRate());

                }
                /* 3054 */
                bx = SkillFactory.getSkill(11120047);
                /* 3055 */
                bof = chra.getTotalSkillLevel(bx);
                /* 3056 */
                if (bof > 0 && bx != null) {
                    /* 3057 */
                    addTargetPlus(11121103, bx.getId(), bx.getEffect(bof).getTargetPlus());
                    /* 3058 */
                    addTargetPlus(11121203, bx.getId(), bx.getEffect(bof).getTargetPlus());

                }
                /* 3060 */
                bx = SkillFactory.getSkill(11120048);
                /* 3061 */
                bof = chra.getTotalSkillLevel(bx);
                /* 3062 */
                if (bof > 0 && bx != null) {
                    /* 3063 */
                    addAttackCount(11121103, bx.getEffect(bof).getAttackCount());
                    /* 3064 */
                    addAttackCount(11121203, bx.getEffect(bof).getAttackCount());

                }
                /* 3066 */
                bx = SkillFactory.getSkill(11120049);
                /* 3067 */
                bof = chra.getTotalSkillLevel(bx);
                /* 3068 */
                if (bof > 0 && bx != null) {
                    /* 3069 */
                    addDamageIncrease(11121101, bx.getEffect(bof).getDAMRate());
                    /* 3070 */
                    addDamageIncrease(11121102, bx.getEffect(bof).getDAMRate());
                    /* 3071 */
                    addDamageIncrease(11121201, bx.getEffect(bof).getDAMRate());
                    /* 3072 */
                    addDamageIncrease(11121202, bx.getEffect(bof).getDAMRate());

                }
                /* 3074 */
                bx = SkillFactory.getSkill(11120050);
                /* 3075 */
                bof = chra.getTotalSkillLevel(bx);
                /* 3076 */
                if (bof > 0 && bx != null) {
                    /* 3077 */
                    addIgnoreMobpdpRate(11121101, bx.getEffect(bof).getIgnoreMob());
                    /* 3078 */
                    addIgnoreMobpdpRate(11121102, bx.getEffect(bof).getIgnoreMob());
                    /* 3079 */
                    addIgnoreMobpdpRate(11121201, bx.getEffect(bof).getIgnoreMob());
                    /* 3080 */
                    addIgnoreMobpdpRate(11121202, bx.getEffect(bof).getIgnoreMob());

                }
                /* 3082 */
                bx = SkillFactory.getSkill(11120051);
                /* 3083 */
                bof = chra.getTotalSkillLevel(bx);
                /* 3084 */
                if (bof > 0 && bx != null) {
                    /* 3085 */
                    this.percent_boss_damage_rate += bx.getEffect(bof).getBossDamage();

                }

                break;


            case 1200:

            case 1210:

            case 1211:

            case 1212:
                /* 3093 */
                bx = SkillFactory.getSkill(12000005);
                /* 3094 */
                bof = chra.getTotalSkillLevel(bx);
                /* 3095 */
                if (bof > 0 && bx != null) {
                    /* 3096 */
                    this.percent_mp += bx.getEffect(bof).getPercentMP();

                }
                /* 3098 */
                bx = SkillFactory.getSkill(12110000);
                /* 3099 */
                bof = chra.getTotalSkillLevel(bx);
                /* 3100 */
                if (bof > 0 && bx != null) {
                    /* 3101 */
                    this.TER += bx.getEffect(bof).getX();

                }
                /* 3103 */
                bx = SkillFactory.getSkill(12000025);
                /* 3104 */
                bof = chra.getTotalSkillLevel(bx);
                /* 3105 */
                if (bof > 0 && bx != null) {
                    /* 3106 */
                    eff = bx.getEffect(bof);
                    /* 3107 */
                    this.percent_mp += eff.getPercentMP();
                    /* 3108 */
                    this.addmaxmp += eff.getLevelToMaxMp() * chra.getLevel();

                }
                /* 3110 */
                bx = SkillFactory.getSkill(12110026);
                /* 3111 */
                bof = chra.getTotalSkillLevel(bx);
                /* 3112 */
                if (bof > 0 && bx != null) {
                    /* 3113 */
                    eff = bx.getEffect(bof);
                    /* 3114 */
                    this.passive_sharpeye_rate = (short) (this.passive_sharpeye_rate + eff.getCritical());
                    /* 3115 */
                    this.passive_sharpeye_min_percent = (short) (this.passive_sharpeye_min_percent + eff.getCriticalMin());

                }
                /* 3117 */
                bx = SkillFactory.getSkill(12110027);
                /* 3118 */
                bof = chra.getTotalSkillLevel(bx);
                /* 3119 */
                if (bof > 0 && bx != null) {
                    /* 3120 */
                    this.localint_ += bx.getEffect(bof).getIntX();

                }



                /* 3125 */
                bx = SkillFactory.getSkill(12120045);
                /* 3126 */
                bof = chra.getTotalSkillLevel(bx);
                /* 3127 */
                if (bof > 0 && bx != null) {
                    /* 3128 */
                    addAttackCount(12000026, bx.getEffect(bof).getAttackCount());
                    /* 3129 */
                    addAttackCount(12100028, bx.getEffect(bof).getAttackCount());
                    /* 3130 */
                    addAttackCount(12110028, bx.getEffect(bof).getAttackCount());
                    /* 3131 */
                    addAttackCount(12120010, bx.getEffect(bof).getAttackCount());

                }
                /* 3133 */
                bx = SkillFactory.getSkill(12120046);
                /* 3134 */
                bof = chra.getTotalSkillLevel(bx);
                /* 3135 */
                if (bof > 0 && bx != null) {
                    /* 3136 */
                    addAttackCount(12120011, bx.getEffect(bof).getAttackCount());

                }
                /* 3138 */
                bx = SkillFactory.getSkill(12120048);
                /* 3139 */
                bof = chra.getTotalSkillLevel(bx);
                /* 3140 */
                if (bof > 0 && bx != null) {
                    /* 3141 */
                    addTargetPlus(12120011, bx.getId(), bx.getEffect(bof).getTargetPlus());

                }


                /* 3145 */
                bx = SkillFactory.getSkill(400004196);
                /* 3146 */
                bof = chra.getTotalSkillLevel(bx);
                /* 3147 */
                if (bof > 0 && bx != null) {
                    /* 3148 */
                    addTargetPlus(12121001, bx.getId(), bx.getEffect(bof).getTargetPlus());
                    /* 3149 */
                    addIgnoreMobpdpRate(12121001, bx.getEffect(bof).getIgnoreMobpdpR());

                }

                /* 3152 */
                bx = SkillFactory.getSkill(400004199);
                /* 3153 */
                bof = chra.getTotalSkillLevel(bx);
                /* 3154 */
                if (bof > 0 && bx != null) {
                    /* 3155 */
                    addTargetPlus(12121054, bx.getId(), bx.getEffect(bof).getTargetPlus());
                    /* 3156 */
                    addIgnoreMobpdpRate(12121054, bx.getEffect(bof).getIgnoreMobpdpR());

                }

                break;





            case 1300:

            case 1310:

            case 1311:

            case 1312:
                /* 3167 */
                bx = SkillFactory.getSkill(13001021);
                /* 3168 */
                bof = chra.getTotalSkillLevel(bx);
                /* 3169 */
                if (bof > 0 && bx != null) {
                    /* 3170 */
                    eff = bx.getEffect(bof);
                    /* 3171 */
                    this.jump += eff.getPsdJump();
                    /* 3172 */
                    this.speed += eff.getPsdSpeed();

                }
                /* 3174 */
                bx = SkillFactory.getSkill(13000023);
                /* 3175 */
                bof = chra.getTotalSkillLevel(bx);
                /* 3176 */
                if (bof > 0 && bx != null) {
                    /* 3177 */
                    eff = bx.getEffect(bof);
                    /* 3178 */
                    this.watk += eff.getAttackX();
                    /* 3179 */
                    this.accuracy += eff.getAccX();
                    /* 3180 */
                    this.defRange += eff.getRange();

                }
                /* 3182 */
                bx = SkillFactory.getSkill(13100026);
                /* 3183 */
                bof = chra.getTotalSkillLevel(bx);
                /* 3184 */
                if (bof > 0 && bx != null) {
                    /* 3185 */
                    eff = bx.getEffect(bof);
                    /* 3186 */
                    this.localstr += eff.getStrX();
                    /* 3187 */
                    this.localdex += eff.getDexX();

                }
                /* 3189 */
                bx = SkillFactory.getSkill(13110025);
                /* 3190 */
                bof = chra.getTotalSkillLevel(bx);
                /* 3191 */
                if (bof > 0 && bx != null) {
                    /* 3192 */
                    eff = bx.getEffect(bof);
                    /* 3193 */
                    this.ASR += eff.getASRRate();
                    /* 3194 */
                    this.TER += eff.getTERRate();

                }
                /* 3196 */
                bx = SkillFactory.getSkill(13110026);
                /* 3197 */
                bof = chra.getTotalSkillLevel(bx);
                /* 3198 */
                if (bof > 0 && bx != null) {
                    /* 3199 */
                    eff = bx.getEffect(bof);
                    /* 3200 */
                    this.percent_wdef += eff.getWdefX();
                    /* 3201 */
                    this.percent_mdef += eff.getMdefX();
                    /* 3202 */
                    this.dodgeChance += eff.getER();

                }
                /* 3204 */
                bx = SkillFactory.getSkill(13120004);
                /* 3205 */
                bof = chra.getTotalSkillLevel(bx);
                /* 3206 */
                if (bof > 0 && bx != null) {
                    /* 3207 */
                    eff = bx.getEffect(bof);
                    /* 3208 */
                    this.percent_damage += eff.getPadR();
                    /* 3209 */
                    this.percent_dex += eff.getDexRate();
                    /* 3210 */
                    this.percent_hp = eff.getPercentHP();
                    /* 3211 */
                    this.dodgeChance += eff.getER();

                }





                /* 3218 */
                bx = SkillFactory.getSkill(13120043);
                /* 3219 */
                bof = chra.getTotalSkillLevel(bx);
                /* 3220 */
                if (bof > 0 && bx != null) {
                    /* 3221 */
                    addDamageIncrease(13101022, bx.getEffect(bof).getDAMRate());
                    /* 3222 */
                    addDamageIncrease(13100027, bx.getEffect(bof).getDAMRate());
                    /* 3223 */
                    addDamageIncrease(13110022, bx.getEffect(bof).getDAMRate());
                    /* 3224 */
                    addDamageIncrease(13110027, bx.getEffect(bof).getDAMRate());
                    /* 3225 */
                    addDamageIncrease(13120003, bx.getEffect(bof).getDAMRate());
                    /* 3226 */
                    addDamageIncrease(13120010, bx.getEffect(bof).getDAMRate());

                }

                /* 3229 */
                bx = SkillFactory.getSkill(13120045);
                /* 3230 */
                bof = chra.getTotalSkillLevel(bx);
                /* 3231 */
                if (bof > 0 && bx != null) {
                    /* 3232 */
                    addAttackCount(13101022, 2);
                    /* 3233 */
                    addAttackCount(13100027, 2);
                    /* 3234 */
                    addAttackCount(13110022, 2);
                    /* 3235 */
                    addAttackCount(13110027, 2);
                    /* 3236 */
                    addAttackCount(13120003, 2);
                    /* 3237 */
                    addAttackCount(13120010, 2);

                }
                /* 3239 */
                bx = SkillFactory.getSkill(13120046);
                /* 3240 */
                bof = chra.getTotalSkillLevel(bx);
                /* 3241 */
                if (bof > 0 && bx != null) {
                    /* 3242 */
                    addDamageIncrease(13121002, bx.getEffect(bof).getDAMRate());
                    /* 3243 */
                    addDamageIncrease(13121009, bx.getEffect(bof).getDAMRate());

                }
                /* 3245 */
                bx = SkillFactory.getSkill(13120047);
                /* 3246 */
                bof = chra.getTotalSkillLevel(bx);
                /* 3247 */
                if (bof > 0 && bx != null) {
                    /* 3248 */
                    addTargetPlus(13121002, bx.getId(), bx.getEffect(bof).getTargetPlus());
                    /* 3249 */
                    addTargetPlus(13121009, bx.getId(), bx.getEffect(bof).getTargetPlus());

                }
                /* 3251 */
                bx = SkillFactory.getSkill(13120048);
                /* 3252 */
                bof = chra.getTotalSkillLevel(bx);
                /* 3253 */
                if (bof > 0 && bx != null) {
                    /* 3254 */
                    addAttackCount(13121002, bx.getEffect(bof).getAttackCount());
                    /* 3255 */
                    addAttackCount(13121009, bx.getEffect(bof).getAttackCount());

                }
                /* 3257 */
                bx = SkillFactory.getSkill(13120049);
                /* 3258 */
                bof = chra.getTotalSkillLevel(bx);
                /* 3259 */
                if (bof > 0 && bx != null) {
                    /* 3260 */
                    addDamageIncrease(13121001, bx.getEffect(bof).getDAMRate());

                }
                /* 3262 */
                bx = SkillFactory.getSkill(13120050);
                /* 3263 */
                bof = chra.getTotalSkillLevel(bx);
                /* 3264 */
                if (bof > 0 && bx != null) {
                    /* 3265 */
                    addIgnoreMobpdpRate(13121001, bx.getEffect(bof).getIgnoreMob());

                }
                /* 3267 */
                bx = SkillFactory.getSkill(13120051);
                /* 3268 */
                bof = chra.getTotalSkillLevel(bx);
                /* 3269 */
                if (bof > 0 && bx != null) {
                    /* 3270 */
                    this.percent_boss_damage_rate += bx.getEffect(bof).getBossDamage();

                }

                /* 3273 */
                bx = SkillFactory.getSkill(400004206);
                /* 3274 */
                bof = chra.getTotalSkillLevel(bx);
                /* 3275 */
                if (bof > 0 && bx != null) {
                    /* 3276 */
                    addTargetPlus(13121001, bx.getId(), bx.getEffect(bof).getTargetPlus());
                    /* 3277 */
                    addIgnoreMobpdpRate(13121001, bx.getEffect(bof).getIgnoreMobpdpR());

                }

                /* 3280 */
                bx = SkillFactory.getSkill(400004207);
                /* 3281 */
                bof = chra.getTotalSkillLevel(bx);
                /* 3282 */
                if (bof > 0 && bx != null) {
                    /* 3283 */
                    addTargetPlus(13121002, bx.getId(), bx.getEffect(bof).getTargetPlus());
                    /* 3284 */
                    addIgnoreMobpdpRate(13121002, bx.getEffect(bof).getIgnoreMobpdpR());

                }

                break;



            case 1400:

            case 1410:

            case 1411:

            case 1412:
                /* 3293 */
                bx = SkillFactory.getSkill(14100023);
                /* 3294 */
                bof = chra.getTotalSkillLevel(bx);
                /* 3295 */
                if (bof > 0 && bx != null) {
                    /* 3296 */
                    eff = bx.getEffect(bof);
                    /* 3297 */
                    this.percent_damage += eff.getDAMRate();

                }
                /* 3299 */
                bx = SkillFactory.getSkill(14100025);
                /* 3300 */
                bof = chra.getTotalSkillLevel(bx);
                /* 3301 */
                if (bof > 0 && bx != null) {
                    /* 3302 */
                    eff = bx.getEffect(bof);
                    /* 3303 */
                    this.localluk += eff.getLukX();

                }
                /* 3305 */
                bx = SkillFactory.getSkill(14110026);
                /* 3306 */
                bof = chra.getTotalSkillLevel(bx);
                /* 3307 */
                if (bof > 0 && bx != null) {
                    /* 3308 */
                    eff = bx.getEffect(bof);
                    /* 3309 */
                    this.percent_hp += eff.getPercentHP();
                    /* 3310 */
                    this.ASR += eff.getASRRate();

                }
                /* 3312 */
                bx = SkillFactory.getSkill(14120006);
                /* 3313 */
                bof = chra.getTotalSkillLevel(bx);
                /* 3314 */
                if (bof > 0 && bx != null) {
                    /* 3315 */
                    eff = bx.getEffect(bof);
                    /* 3316 */
                    this.watk += eff.getAttackX();
                    /* 3317 */
                    this.percent_ignore_mob_def_rate += eff.getIgnoreMob();

                }
                /* 3319 */
                bx = SkillFactory.getSkill(14120046);
                /* 3320 */
                bof = chra.getTotalSkillLevel(bx);
                /* 3321 */
                if (bof > 0 && bx != null) {
                    /* 3322 */
                    addCoolTimeReduce(14121003, bx.getEffect(bof).getCooltimeReduceR());

                }
                /* 3324 */
                bx = SkillFactory.getSkill(14120047);
                /* 3325 */
                bof = chra.getTotalSkillLevel(bx);
                /* 3326 */
                if (bof > 0 && bx != null) {
                    /* 3327 */
                    addTargetPlus(14121003, bx.getId(), bx.getEffect(bof).getTargetPlus());

                }

                break;





            case 1500:

            case 1510:

            case 1511:

            case 1512:
                /* 3338 */
                bx = SkillFactory.getSkill(15000023);
                /* 3339 */
                bof = chra.getTotalSkillLevel(bx);
                /* 3340 */
                if (bof > 0 && bx != null) {
                    /* 3341 */
                    eff = bx.getEffect(bof);
                    /* 3342 */
                    this.speed += eff.getPsdSpeed();
                    /* 3343 */
                    this.jump += eff.getPsdJump();
                    /* 3344 */
                    this.raidenCount += eff.getV();
                    /* 3345 */
                    this.raidenPorp += eff.getProp();

                }
                /* 3347 */
                bx = SkillFactory.getSkill(15001022);
                /* 3348 */
                bof = chra.getTotalSkillLevel(bx);
                /* 3349 */
                if (bof > 0 && bx != null) {
                    /* 3350 */
                    eff = bx.getEffect(bof);
                    /* 3351 */
                    this.raidenCount += eff.getV();
                    /* 3352 */
                    this.raidenPorp += eff.getProp();

                }
                /* 3354 */
                bx = SkillFactory.getSkill(15100024);
                /* 3355 */
                bof = chra.getTotalSkillLevel(bx);
                /* 3356 */
                if (bof > 0 && bx != null) {
                    /* 3357 */
                    eff = bx.getEffect(bof);
                    /* 3358 */
                    this.localstr += eff.getStrX();

                }
                /* 3360 */
                bx = SkillFactory.getSkill(15100025);
                /* 3361 */
                bof = chra.getTotalSkillLevel(bx);
                /* 3362 */
                if (bof > 0 && bx != null) {
                    /* 3363 */
                    eff = bx.getEffect(bof);
                    /* 3364 */
                    this.watk += eff.getAttackX();
                    /* 3365 */
                    this.raidenCount += eff.getV();
                    /* 3366 */
                    this.raidenPorp += eff.getProp();

                }
                /* 3368 */
                bx = SkillFactory.getSkill(15110026);
                /* 3369 */
                bof = chra.getTotalSkillLevel(bx);
                /* 3370 */
                if (bof > 0 && bx != null) {
                    /* 3371 */
                    eff = bx.getEffect(bof);
                    /* 3372 */
                    this.watk += eff.getAttackX();
                    /* 3373 */
                    this.raidenCount += eff.getV();
                    /* 3374 */
                    this.raidenPorp += eff.getProp();

                }
                /* 3376 */
                bx = SkillFactory.getSkill(15120007);
                /* 3377 */
                bof = chra.getTotalSkillLevel(bx);
                /* 3378 */
                if (bof > 0 && bx != null) {
                    /* 3379 */
                    eff = bx.getEffect(bof);

                    /* 3381 */
                    this.percent_hp += eff.getPercentHP();
                    /* 3382 */
                    this.ignore_mob_damage_rate += eff.getIgnoreMobDamR();

                }
                /* 3384 */
                bx = SkillFactory.getSkill(15120008);
                /* 3385 */
                bof = chra.getTotalSkillLevel(bx);
                /* 3386 */
                if (bof > 0 && bx != null) {
                    /* 3387 */
                    eff = bx.getEffect(bof);
                    /* 3388 */
                    this.raidenCount += eff.getV();
                    /* 3389 */
                    this.raidenPorp += eff.getProp();
                    /* 3390 */
                    this.passive_sharpeye_rate = (short) (this.passive_sharpeye_rate + eff.getCritical());
                    /* 3391 */
                    this.passive_sharpeye_min_percent = (short) (this.passive_sharpeye_min_percent + eff.getCriticalMin());

                }



                /* 3396 */
                bx = SkillFactory.getSkill(15120043);
                /* 3397 */
                bof = chra.getTotalSkillLevel(bx);
                /* 3398 */
                if (bof > 0 && bx != null) {
                    /* 3399 */
                    addDamageIncrease(15111022, bx.getEffect(bof).getDAMRate());
                    /* 3400 */
                    addDamageIncrease(15120003, bx.getEffect(bof).getDAMRate());

                }
                /* 3402 */
                bx = SkillFactory.getSkill(15120044);
                /* 3403 */
                bof = chra.getTotalSkillLevel(bx);
                /* 3404 */
                if (bof > 0 && bx != null) {
                    /* 3405 */
                    addTargetPlus(15111022, bx.getId(), bx.getEffect(bof).getTargetPlus());
                    /* 3406 */
                    addTargetPlus(15120003, bx.getId(), bx.getEffect(bof).getTargetPlus());

                }
                /* 3408 */
                bx = SkillFactory.getSkill(15120045);
                /* 3409 */
                bof = chra.getTotalSkillLevel(bx);
                /* 3410 */
                if (bof > 0 && bx != null) {
                    /* 3411 */
                    addAttackCount(15111022, bx.getEffect(bof).getAttackCount());
                    /* 3412 */
                    addAttackCount(15120003, bx.getEffect(bof).getAttackCount());

                }
                /* 3414 */
                bx = SkillFactory.getSkill(15120046);
                /* 3415 */
                bof = chra.getTotalSkillLevel(bx);
                /* 3416 */
                if (bof > 0 && bx != null) {
                    /* 3417 */
                    addDamageIncrease(15121002, bx.getEffect(bof).getDAMRate());

                }
                /* 3419 */
                bx = SkillFactory.getSkill(15120047);
                /* 3420 */
                bof = chra.getTotalSkillLevel(bx);
                /* 3421 */
                if (bof > 0 && bx != null) {
                    /* 3422 */
                    addTargetPlus(15121002, bx.getId(), bx.getEffect(bof).getTargetPlus());

                }
                /* 3424 */
                bx = SkillFactory.getSkill(15120048);
                /* 3425 */
                bof = chra.getTotalSkillLevel(bx);
                /* 3426 */
                if (bof > 0 && bx != null) {
                    /* 3427 */
                    addAttackCount(15121002, bx.getEffect(bof).getAttackCount());

                }
                /* 3429 */
                bx = SkillFactory.getSkill(15120049);
                /* 3430 */
                bof = chra.getTotalSkillLevel(bx);
                /* 3431 */
                if (bof > 0 && bx != null) {
                    /* 3432 */
                    addDamageIncrease(15121001, bx.getEffect(bof).getDAMRate());

                }
                /* 3434 */
                bx = SkillFactory.getSkill(15120050);
                /* 3435 */
                bof = chra.getTotalSkillLevel(bx);
                /* 3436 */
                if (bof > 0 && bx != null) {
                    /* 3437 */
                    addIgnoreMobpdpRate(15121001, bx.getEffect(bof).getIgnoreMob());

                }
                /* 3439 */
                bx = SkillFactory.getSkill(15120051);
                /* 3440 */
                bof = chra.getTotalSkillLevel(bx);
                /* 3441 */
                if (bof > 0 && bx != null) {
                    /* 3442 */
                    this.percent_boss_damage_rate += bx.getEffect(bof).getBossDamage();

                }

                break;


            case 2003:
                /* 3447 */
                bx = SkillFactory.getSkill(20030206);
                /* 3448 */
                bof = chra.getTotalSkillLevel(bx);
                /* 3449 */
                if (bof > 0 && bx != null) {
                    /* 3450 */
                    eff = bx.getEffect(bof);
                    /* 3451 */
                    this.localdex += eff.getDexX();
                    /* 3452 */
                    this.dodgeChance += eff.getER();
                    /* 3453 */
                    chra.getTrait(MapleTraitType.insight).setLevel(20, chra);
                    /* 3454 */
                    chra.getTrait(MapleTraitType.craft).setLevel(20, chra);

                }

                break;


            case 2110:

            case 2111:

            case 2112:
                /* 3461 */
                bx = SkillFactory.getSkill(21100008);
                /* 3462 */
                bof = chra.getTotalSkillLevel(bx);
                /* 3463 */
                if (bof > 0 && bx != null) {
                    /* 3464 */
                    eff = bx.getEffect(bof);
                    /* 3465 */
                    this.localstr += eff.getStrX();
                    /* 3466 */
                    this.localdex += eff.getDexX();

                }
                /* 3468 */
                if ((eff = chra.getSkillEffect(21100010)) != null) {
                    /* 3469 */
                    this.finalSkillID = eff.getSourceid();

                }
                /* 3471 */
                bx = SkillFactory.getSkill(21101006);
                /* 3472 */
                bof = chra.getTotalSkillLevel(bx);
                /* 3473 */
                if (bof > 0 && bx != null) {
                    /* 3474 */
                    this.percent_damage += bx.getEffect(bof).getDAMRate();

                }
                /* 3476 */
                bx = SkillFactory.getSkill(21110000);
                /* 3477 */
                bof = chra.getTotalSkillLevel(bx);
                /* 3478 */
                if (bof > 0 && bx != null) {
                    /* 3479 */
                    eff = bx.getEffect(bof);
                    /* 3480 */
                    this.passive_sharpeye_rate = (short) (this.passive_sharpeye_rate + eff.getCritical());
                    /* 3481 */
                    this.passive_sharpeye_min_percent = (short) (this.passive_sharpeye_min_percent + eff.getCriticalMax());
                    /* 3482 */
                    this.ASR += eff.getASRRate();

                }
                /* 3484 */
                bx = SkillFactory.getSkill(21110010);
                /* 3485 */
                bof = chra.getTotalSkillLevel(bx);
                /* 3486 */
                if (bof > 0 && bx != null) {
                    /* 3487 */
                    eff = bx.getEffect(bof);
                    /* 3488 */
                    this.percent_ignore_mob_def_rate += eff.getIgnoreMob();
                    /* 3489 */
                    this.percent_boss_damage_rate += eff.getBossDamage();

                }
                /* 3491 */
                bx = SkillFactory.getSkill(21120004);
                /* 3492 */
                bof = chra.getTotalSkillLevel(bx);
                /* 3493 */
                if (bof > 0 && bx != null) {
                    /* 3494 */
                    this.percent_hp += bx.getEffect(bof).getPercentHP();

                }
                /* 3496 */
                bx = SkillFactory.getSkill(21120012);
                /* 3497 */
                bof = chra.getTotalSkillLevel(bx);
                /* 3498 */
                if (bof > 0 && bx != null) {
                    /* 3499 */
                    eff = bx.getEffect(bof);
                    /* 3500 */
                    this.finalSkillID = eff.getSourceid();
                    /* 3501 */
                    this.watk += eff.getAttackX();
                    /* 3502 */
                    addDamageIncrease(21100010, eff.getDamage());

                }
                /* 3504 */
                bx = SkillFactory.getSkill(21120011);
                /* 3505 */
                bof = chra.getTotalSkillLevel(bx);
                /* 3506 */
                if (bof > 0 && bx != null) {
                    /* 3507 */
                    eff = bx.getEffect(bof);
                    /* 3508 */
                    addDamageIncrease(21101011, eff.getDAMRate());

                }



                /* 3513 */
                bx = SkillFactory.getSkill(21120062);
                /* 3514 */
                bof = chra.getTotalSkillLevel(bx);
                /* 3515 */
                if (bof > 0 && bx != null) {
                    /* 3516 */
                    eff = bx.getEffect(bof);
                    /* 3517 */
                    addTargetPlus(21120023, bx.getId(), eff.getTargetPlus());
                    /* 3518 */
                    addTargetPlus(21120018, bx.getId(), eff.getTargetPlus());
                    /* 3519 */
                    addTargetPlus(21120027, bx.getId(), eff.getTargetPlus());

                }
                /* 3521 */
                bx = SkillFactory.getSkill(21120064);
                /* 3522 */
                bof = chra.getTotalSkillLevel(bx);
                /* 3523 */
                if (bof > 0 && bx != null) {
                    /* 3524 */
                    eff = bx.getEffect(bof);
                    /* 3525 */
                    addBuffDuration(21110016, eff.getDuration());

                }
                /* 3527 */
                bx = SkillFactory.getSkill(21120066);
                /* 3528 */
                bof = chra.getTotalSkillLevel(bx);
                /* 3529 */
                if (bof > 0 && bx != null) {
                    /* 3530 */
                    eff = bx.getEffect(bof);
                    /* 3531 */
                    addAttackCount(21120022, eff.getAttackCount());
                    /* 3532 */
                    addAttackCount(21121016, eff.getAttackCount());
                    /* 3533 */
                    addAttackCount(21121017, eff.getAttackCount());
                    /* 3534 */
                    addAttackCount(400010071, eff.getAttackCount());
                    /* 3535 */
                    addAttackCount(400010070, eff.getAttackCount());

                }

                break;


            case 2200:

            case 2211:

            case 2214:

            case 2217:
                /* 3543 */
                if ((eff = chra.getSkillEffect(22000015)) != null) {
                    /* 3544 */
                    this.finalSkillID = eff.getSourceid();

                }
                /* 3546 */
                bx = SkillFactory.getSkill(22000014);
                /* 3547 */
                bof = chra.getTotalSkillLevel(bx);
                /* 3548 */
                if (bof > 0 && bx != null) {
                    /* 3549 */
                    eff = bx.getEffect(bof);
                    /* 3550 */
                    this.percent_mp += eff.getPercentMP();
                    /* 3551 */
                    this.addmaxmp += eff.getLevelToMaxMp() * chra.getLevel();

                }

                /* 3554 */
                this.magic += chra.getTotalSkillLevel(SkillFactory.getSkill(22000013));
                /* 3555 */
                bx = SkillFactory.getSkill(22110015);
                /* 3556 */
                bof = chra.getTotalSkillLevel(bx);
                /* 3557 */
                if (bof > 0 && bx != null) {
                    /* 3558 */
                    this.localint_ += bx.getEffect(bof).getIntX();

                }
                /* 3560 */
                bx = SkillFactory.getSkill(22140020);
                /* 3561 */
                bof = chra.getTotalSkillLevel(bx);
                /* 3562 */
                if (bof > 0 && bx != null) {
                    /* 3563 */
                    eff = bx.getEffect(bof);
                    /* 3564 */
                    this.mpconPercent += eff.getX() - 100;
                    /* 3565 */
                    this.percent_damage_rate += eff.getY();
                    /* 3566 */
                    this.percent_boss_damage_rate += eff.getY();

                }
                /* 3568 */
                bx = SkillFactory.getSkill(22170074);
                /* 3569 */
                bof = chra.getTotalSkillLevel(bx);
                /* 3570 */
                if (bof > 0 && bx != null) {
                    /* 3571 */
                    this.percent_damage += bx.getEffect(bof).getDamage();

                }
                /* 3573 */
                bx = SkillFactory.getSkill(22170071);
                /* 3574 */
                bof = chra.getTotalSkillLevel(bx);
                /* 3575 */
                if (bof > 0 && bx != null) {
                    /* 3576 */
                    eff = bx.getEffect(bof);
                    /* 3577 */
                    this.magic += eff.getX();
                    /* 3578 */
                    this.trueMastery += eff.getMastery();
                    /* 3579 */
                    this.passive_sharpeye_min_percent = (short) (this.passive_sharpeye_min_percent + eff.getCriticalMin());

                }

                /* 3582 */
                if ((eff = chra.getSkillEffect(22110021)) != null) {
                    /* 3583 */
                    this.finalSkillID = eff.getSourceid();

                }





            case 2001:

            case 2300:

            case 2310:

            case 2311:

            case 2312:
                /* 3594 */
                bx = SkillFactory.getSkill(20021110);
                /* 3595 */
                bof = chra.getSkillLevel(bx);
                /* 3596 */
                if (bof <= 0 || bx != null) ;


                /* 3599 */
                bx = SkillFactory.getSkill(20020112);
                /* 3600 */
                bof = chra.getSkillLevel(bx);
                /* 3601 */
                if (bof > 0 && bx != null) {
                    /* 3602 */
                    chra.getTrait(MapleTraitType.charm).setLevel(20, chra);

                }
                /* 3604 */
                bx = SkillFactory.getSkill(23000001);
                /* 3605 */
                bof = chra.getTotalSkillLevel(bx);
                /* 3606 */
                if (bof > 0 && bx != null) {
                    /* 3607 */
                    this.dodgeChance += bx.getEffect(bof).getER();

                }
                /* 3609 */
                bx = SkillFactory.getSkill(23100008);
                /* 3610 */
                bof = chra.getTotalSkillLevel(bx);
                /* 3611 */
                if (bof > 0 && bx != null) {
                    /* 3612 */
                    eff = bx.getEffect(bof);
                    /* 3613 */
                    this.localstr += eff.getStrX();
                    /* 3614 */
                    this.localdex += eff.getDexX();

                }
                /* 3616 */
                bx = SkillFactory.getSkill(23100004);
                /* 3617 */
                bof = chra.getTotalSkillLevel(bx);
                /* 3618 */
                if (bof > 0 && bx != null) {
                    /* 3619 */
                    this.dodgeChance += bx.getEffect(bof).getProp();

                }
                /* 3621 */
                if ((eff = chra.getSkillEffect(23100006)) != null) {
                    /* 3622 */
                    this.finalSkillID = eff.getSourceid();

                }
                /* 3624 */
                bx = SkillFactory.getSkill(23110006);
                /* 3625 */
                bof = chra.getTotalSkillLevel(bx);
                /* 3626 */
                if (bof > 0 && bx != null) {
                    /* 3627 */
                    addDamageIncrease(23101001, bx.getEffect(bof).getDAMRate());

                }
                /* 3629 */
                bx = SkillFactory.getSkill(23121000);
                /* 3630 */
                bof = chra.getTotalSkillLevel(bx);
                /* 3631 */
                if (bof > 0 && bx != null) {
                    /* 3632 */
                    addDamageIncrease(23111000, bx.getEffect(bof).getDAMRate());

                }
                /* 3634 */
                bx = SkillFactory.getSkill(23121002);
                /* 3635 */
                bof = chra.getTotalSkillLevel(bx);
                /* 3636 */
                if (bof > 0 && bx != null) {
                    /* 3637 */
                    addDamageIncrease(23111001, bx.getEffect(bof).getDAMRate());

                }
                /* 3639 */
                bx = SkillFactory.getSkill(23121004);
                /* 3640 */
                bof = chra.getTotalSkillLevel(bx);
                /* 3641 */
                if (bof > 0 && bx != null) {
                    /* 3642 */
                    this.dodgeChance += bx.getEffect(bof).getProp();

                }
                /* 3644 */
                bx = SkillFactory.getSkill(23120009);
                /* 3645 */
                bof = chra.getTotalSkillLevel(bx);
                /* 3646 */
                if (bof > 0 && bx != null) {
                    /* 3647 */
                    eff = bx.getEffect(bof);
                    /* 3648 */
                    this.watk += eff.getX();
                    /* 3649 */
                    this.trueMastery += eff.getMastery();
                    /* 3650 */
                    this.passive_sharpeye_min_percent = (short) (this.passive_sharpeye_min_percent + eff.getCriticalMin());

                }
                /* 3652 */
                bx = SkillFactory.getSkill(23120010);
                /* 3653 */
                bof = chra.getTotalSkillLevel(bx);
                /* 3654 */
                if (bof > 0 && bx != null) {
                    /* 3655 */
                    this.percent_ignore_mob_def_rate += bx.getEffect(bof).getX();

                }
                /* 3657 */
                bx = SkillFactory.getSkill(23121011);
                /* 3658 */
                bof = chra.getTotalSkillLevel(bx);
                /* 3659 */
                if (bof > 0 && bx != null) {
                    /* 3660 */
                    addDamageIncrease(23101001, bx.getEffect(bof).getDAMRate());

                }
                /* 3662 */
                bx = SkillFactory.getSkill(23120012);
                /* 3663 */
                bof = chra.getTotalSkillLevel(bx);
                /* 3664 */
                if (bof > 0 && bx != null) {
                    /* 3665 */
                    eff = bx.getEffect(bof);
                    /* 3666 */
                    this.finalSkillID = eff.getSourceid();
                    /* 3667 */
                    this.watk += eff.getAttackX();
                    /* 3668 */
                    addDamageIncrease(23100005, eff.getDamage());

                }



                /* 3673 */
                bx = SkillFactory.getSkill(23120043);
                /* 3674 */
                bof = chra.getTotalSkillLevel(bx);
                /* 3675 */
                if (bof > 0 && bx != null) {
                    /* 3676 */
                    addDamageIncrease(23121000, bx.getEffect(bof).getDAMRate());

                }
                /* 3678 */
                bx = SkillFactory.getSkill(23120045);
                /* 3679 */
                bof = chra.getTotalSkillLevel(bx);
                /* 3680 */
                if (bof > 0 && bx != null) {
                    /* 3681 */
                    addDamageIncrease(23111000, bx.getEffect(bof).getDAMRate());

                }
                /* 3683 */
                bx = SkillFactory.getSkill(23120049);
                /* 3684 */
                bof = chra.getTotalSkillLevel(bx);
                /* 3685 */
                if (bof > 0 && bx != null) {
                    /* 3686 */
                    addDamageIncrease(23121002, bx.getEffect(bof).getDAMRate());

                }
                /* 3688 */
                bx = SkillFactory.getSkill(23120051);
                /* 3689 */
                bof = chra.getTotalSkillLevel(bx);
                /* 3690 */
                if (bof > 0 && bx != null) {
                    /* 3691 */
                    addDamageIncrease(23111001, bx.getEffect(bof).getDAMRate());

                }


                /* 3695 */
                bx = SkillFactory.getSkill(400004274);
                /* 3696 */
                bof = chra.getTotalSkillLevel(bx);
                /* 3697 */
                if (bof > 0 && bx != null) {
                    /* 3698 */
                    addTargetPlus(23111000, bx.getId(), bx.getEffect(bof).getTargetPlus());
                    /* 3699 */
                    addIgnoreMobpdpRate(23111000, bx.getEffect(bof).getIgnoreMobpdpR());

                }

                /* 3702 */
                bx = SkillFactory.getSkill(400004281);
                /* 3703 */
                bof = chra.getTotalSkillLevel(bx);
                /* 3704 */
                if (bof > 0 && bx != null) {
                    /* 3705 */
                    addTargetPlus(23121002, bx.getId(), bx.getEffect(bof).getTargetPlus());
                    /* 3706 */
                    addIgnoreMobpdpRate(23121002, bx.getEffect(bof).getIgnoreMobpdpR());

                }

                /* 3709 */
                bx = SkillFactory.getSkill(400004282);
                /* 3710 */
                bof = chra.getTotalSkillLevel(bx);
                /* 3711 */
                if (bof > 0 && bx != null) {
                    /* 3712 */
                    addTargetPlus(23121003, bx.getId(), bx.getEffect(bof).getTargetPlus());
                    /* 3713 */
                    addIgnoreMobpdpRate(23121003, bx.getEffect(bof).getIgnoreMobpdpR());

                }

                /* 3716 */
                bx = SkillFactory.getSkill(400004284);
                /* 3717 */
                bof = chra.getTotalSkillLevel(bx);
                /* 3718 */
                if (bof > 0 && bx != null) {
                    /* 3719 */
                    addTargetPlus(23121052, bx.getId(), bx.getEffect(bof).getTargetPlus());
                    /* 3720 */
                    addIgnoreMobpdpRate(23121052, bx.getEffect(bof).getIgnoreMobpdpR());

                }

                break;


            case 2400:

            case 2410:

            case 2411:

            case 2412:
                /* 3728 */
                bx = SkillFactory.getSkill(24001002);
                /* 3729 */
                bof = chra.getTotalSkillLevel(bx);
                /* 3730 */
                if (bof > 0 && bx != null) {
                    /* 3731 */
                    eff = bx.getEffect(bof);
                    /* 3732 */
                    this.speed += eff.getPsdSpeed();
                    /* 3733 */
                    this.jump += eff.getPsdJump();

                }
                /* 3735 */
                bx = SkillFactory.getSkill(24000003);
                /* 3736 */
                bof = chra.getTotalSkillLevel(bx);
                /* 3737 */
                if (bof > 0 && bx != null) {
                    /* 3738 */
                    eff = bx.getEffect(bof);
                    /* 3739 */
                    this.dodgeChance += eff.getX();

                }
                /* 3741 */
                bx = SkillFactory.getSkill(24100006);
                /* 3742 */
                bof = chra.getTotalSkillLevel(bx);
                /* 3743 */
                if (bof > 0 && bx != null) {
                    /* 3744 */
                    eff = bx.getEffect(bof);
                    /* 3745 */
                    this.localluk += eff.getLukX();

                }
                /* 3747 */
                bx = SkillFactory.getSkill(24111002);
                /* 3748 */
                bof = chra.getTotalSkillLevel(bx);
                /* 3749 */
                if (bof > 0 && bx != null) {
                    /* 3750 */
                    eff = bx.getEffect(bof);
                    /* 3751 */
                    this.localluk += eff.getLukX();

                }
                /* 3753 */
                bx = SkillFactory.getSkill(24111006);
                /* 3754 */
                bof = chra.getTotalSkillLevel(bx);
                /* 3755 */
                if (bof > 0 && bx != null) {
                    /* 3756 */
                    eff = bx.getEffect(bof);
                    /* 3757 */
                    addDamageIncrease(24101002, eff.getDAMRate());

                }
                /* 3759 */
                bx = SkillFactory.getSkill(24120002);
                /* 3760 */
                bof = chra.getTotalSkillLevel(bx);
                /* 3761 */
                if (bof > 0 && bx != null) {
                    /* 3762 */
                    eff = bx.getEffect(bof);
                    /* 3763 */
                    this.dodgeChance += eff.getX();

                }
                /* 3765 */
                bx = SkillFactory.getSkill(24121003);
                /* 3766 */
                bof = chra.getTotalSkillLevel(bx);
                /* 3767 */
                if (bof > 0 && bx != null) {
                    /* 3768 */
                    eff = bx.getEffect(bof);
                    /* 3769 */
                    addDamageIncrease(24111006, eff.getDAMRate());
                    /* 3770 */
                    addDamageIncrease(24111008, eff.getDAMRate());

                }
                /* 3772 */
                bx = SkillFactory.getSkill(24120006);
                /* 3773 */
                bof = chra.getTotalSkillLevel(bx);
                /* 3774 */
                if (bof > 0 && bx != null) {
                    /* 3775 */
                    eff = bx.getEffect(bof);
                    /* 3776 */
                    this.watk += eff.getAttackX();
                    /* 3777 */
                    this.trueMastery += eff.getMastery();
                    /* 3778 */
                    this.passive_sharpeye_min_percent = (short) (this.passive_sharpeye_min_percent + eff.getCriticalMin());

                }



                /* 3783 */
                bx = SkillFactory.getSkill(24120043);
                /* 3784 */
                bof = chra.getTotalSkillLevel(bx);
                /* 3785 */
                if (bof > 0 && bx != null) {
                    /* 3786 */
                    addDamageIncrease(24121005, bx.getEffect(bof).getDAMRate());

                }
                /* 3788 */
                bx = SkillFactory.getSkill(24120044);
                /* 3789 */
                bof = chra.getTotalSkillLevel(bx);
                /* 3790 */
                if (bof > 0 && bx != null) {
                    /* 3791 */
                    addCoolTimeReduce(24121005, bx.getEffect(bof).getCooltimeReduceR());

                }
                /* 3793 */
                bx = SkillFactory.getSkill(24120045);
                /* 3794 */
                bof = chra.getTotalSkillLevel(bx);
                /* 3795 */
                if (bof > 0 && bx != null) {
                    /* 3796 */
                    addTargetPlus(24121005, bx.getId(), bx.getEffect(bof).getTargetPlus());

                }
                /* 3798 */
                bx = SkillFactory.getSkill(24120046);
                /* 3799 */
                bof = chra.getTotalSkillLevel(bx);
                /* 3800 */
                if (bof > 0 && bx != null) {
                    /* 3801 */
                    addDamageIncrease(24121000, bx.getEffect(bof).getDAMRate());

                }
                /* 3803 */
                bx = SkillFactory.getSkill(24120047);
                /* 3804 */
                bof = chra.getTotalSkillLevel(bx);
                /* 3805 */
                if (bof > 0 && bx != null) {
                    /* 3806 */
                    addTargetPlus(24121000, bx.getId(), bx.getEffect(bof).getTargetPlus());

                }


                /* 3810 */
                bx = SkillFactory.getSkill(400004291);
                /* 3811 */
                bof = chra.getTotalSkillLevel(bx);
                /* 3812 */
                if (bof > 0 && bx != null) {
                    /* 3813 */
                    addTargetPlus(24121000, bx.getId(), bx.getEffect(bof).getTargetPlus());
                    /* 3814 */
                    addIgnoreMobpdpRate(24121000, bx.getEffect(bof).getIgnoreMobpdpR());

                }

                /* 3817 */
                bx = SkillFactory.getSkill(400004292);
                /* 3818 */
                bof = chra.getTotalSkillLevel(bx);
                /* 3819 */
                if (bof > 0 && bx != null) {
                    /* 3820 */
                    addTargetPlus(24121003, bx.getId(), bx.getEffect(bof).getTargetPlus());
                    /* 3821 */
                    addIgnoreMobpdpRate(24121003, bx.getEffect(bof).getIgnoreMobpdpR());

                }

                /* 3824 */
                bx = SkillFactory.getSkill(400004293);
                /* 3825 */
                bof = chra.getTotalSkillLevel(bx);
                /* 3826 */
                if (bof > 0 && bx != null) {
                    /* 3827 */
                    addTargetPlus(24121005, bx.getId(), bx.getEffect(bof).getTargetPlus());
                    /* 3828 */
                    addIgnoreMobpdpRate(24121005, bx.getEffect(bof).getIgnoreMobpdpR());

                }

                break;


            case 2005:

            case 2500:

            case 2510:

            case 2511:

            case 2512:
                /* 3837 */
                bx = SkillFactory.getSkill(25000105);
                /* 3838 */
                bof = chra.getTotalSkillLevel(bx);
                /* 3839 */
                if (bof > 0 && bx != null) {
                    /* 3840 */
                    eff = bx.getEffect(bof);
                    /* 3841 */
                    this.percent_hp += eff.getPercentHP();
                    /* 3842 */
                    this.percent_mp += eff.getPercentMP();
                    /* 3843 */
                    this.wdef += eff.getWdefX();
                    /* 3844 */
                    this.mdef += eff.getWdefX();

                }
                /* 3846 */
                bx = SkillFactory.getSkill(25101205);
                /* 3847 */
                bof = chra.getTotalSkillLevel(bx);
                /* 3848 */
                if (bof > 0 && bx != null) {
                    /* 3849 */
                    eff = bx.getEffect(bof);
                    /* 3850 */
                    this.dodgeChance += eff.getX();

                }
                /* 3852 */
                bx = SkillFactory.getSkill(25100108);
                /* 3853 */
                bof = chra.getTotalSkillLevel(bx);
                /* 3854 */
                if (bof > 0 && bx != null) {
                    /* 3855 */
                    eff = bx.getEffect(bof);
                    /* 3856 */
                    this.localstr += eff.getStrX();

                }
                /* 3858 */
                bx = SkillFactory.getSkill(25110107);
                /* 3859 */
                bof = chra.getTotalSkillLevel(bx);
                /* 3860 */
                if (bof > 0 && bx != null) {
                    /* 3861 */
                    eff = bx.getEffect(bof);
                    /* 3862 */
                    this.watk += eff.getAttackX();
                    /* 3863 */
                    this.percent_damage += eff.getDAMRate();

                }
                /* 3865 */
                bx = SkillFactory.getSkill(25110108);
                /* 3866 */
                bof = chra.getTotalSkillLevel(bx);
                /* 3867 */
                if (bof > 0 && bx != null) {
                    /* 3868 */
                    eff = bx.getEffect(bof);
                    /* 3869 */
                    this.wdef += eff.getWdefX();
                    /* 3870 */
                    this.mdef += eff.getWdefX();
                    /* 3871 */
                    this.ASR += eff.getASRRate();
                    /* 3872 */
                    this.TER += eff.getTERRate();

                }
                /* 3874 */
                bx = SkillFactory.getSkill(25120112);
                /* 3875 */
                bof = chra.getTotalSkillLevel(bx);
                /* 3876 */
                if (bof > 0 && bx != null) {
                    /* 3877 */
                    eff = bx.getEffect(bof);
                    /* 3878 */
                    this.percent_ignore_mob_def_rate += eff.getIgnoreMob();
                    /* 3879 */
                    this.percent_boss_damage_rate += eff.getBossDamage();

                }



                /* 3884 */
                bx = SkillFactory.getSkill(25120148);
                /* 3885 */
                bof = chra.getTotalSkillLevel(bx);
                /* 3886 */
                if (bof > 0 && bx != null) {
                    /* 3887 */
                    addAttackCount(25121005, bx.getEffect(bof).getAttackCount());

                }
                /* 3889 */
                bx = SkillFactory.getSkill(25120150);
                /* 3890 */
                bof = chra.getTotalSkillLevel(bx);
                /* 3891 */
                if (bof > 0 && bx != null) {
                    /* 3892 */
                    addTargetPlus(25121000, bx.getId(), bx.getEffect(bof).getTargetPlus());
                    /* 3893 */
                    addTargetPlus(25120001, bx.getId(), bx.getEffect(bof).getTargetPlus());
                    /* 3894 */
                    addTargetPlus(25120002, bx.getId(), bx.getEffect(bof).getTargetPlus());
                    /* 3895 */
                    addTargetPlus(25120003, bx.getId(), bx.getEffect(bof).getTargetPlus());

                }

                break;


            case 2004:

            case 2700:

            case 2710:

            case 2711:

            case 2712:
                /* 3904 */
                bx = SkillFactory.getSkill(27000004);
                /* 3905 */
                bof = chra.getTotalSkillLevel(bx);
                /* 3906 */
                if (bof > 0 && bx != null) {
                    /* 3907 */
                    this.percent_mp += bx.getEffect(bof).getPercentMP();

                }
                /* 3909 */
                bx = SkillFactory.getSkill(20040218);
                /* 3910 */
                bof = chra.getTotalSkillLevel(bx);
                /* 3911 */
                if (bof > 0 && bx != null) {
                    /* 3912 */
                    this.percent_ignore_mob_def_rate += bx.getEffect(bof).getIgnoreMob();

                }
                /* 3914 */
                bx = SkillFactory.getSkill(20040221);
                /* 3915 */
                bof = chra.getTotalSkillLevel(bx);
                /* 3916 */
                if (bof > 0 && bx != null) {
                    /* 3917 */
                    eff = bx.getEffect(bof);
                    /* 3918 */
                    this.localint_ += eff.getIntX();
                    /* 3919 */
                    chra.getTrait(MapleTraitType.will).setLevel(20, chra);
                    /* 3920 */
                    chra.getTrait(MapleTraitType.insight).setLevel(20, chra);

                }
                /* 3922 */
                bx = SkillFactory.getSkill(27000003);
                /* 3923 */
                bof = chra.getTotalSkillLevel(bx);
                /* 3924 */
                if (bof > 0 && bx != null) {
                    /* 3925 */
                    eff = bx.getEffect(bof);
                    /* 3926 */
                    this.wdef += eff.getWdefX();
                    /* 3927 */
                    this.mdef += eff.getMdefX();

                }
                /* 3929 */
                bx = SkillFactory.getSkill(27001002);
                /* 3930 */
                bof = chra.getTotalSkillLevel(bx);
                /* 3931 */
                if (bof > 0 && bx != null) {
                    /* 3932 */
                    eff = bx.getEffect(bof);
                    /* 3933 */
                    this.jump += eff.getPsdJump();
                    /* 3934 */
                    this.speed += eff.getPsdSpeed();

                }
                /* 3936 */
                bx = SkillFactory.getSkill(27000207);
                /* 3937 */
                bof = chra.getTotalSkillLevel(bx);
                /* 3938 */
                if (bof > 0 && bx != null) {
                    /* 3939 */
                    eff = bx.getEffect(bof);
                    /* 3940 */
                    addDamageIncrease(27001100, eff.getMdRate());
                    /* 3941 */
                    addDamageIncrease(27101100, eff.getMdRate());
                    /* 3942 */
                    addDamageIncrease(27101101, eff.getMdRate());
                    /* 3943 */
                    addDamageIncrease(27111100, eff.getMdRate());
                    /* 3944 */
                    addDamageIncrease(27111101, eff.getMdRate());
                    /* 3945 */
                    addDamageIncrease(27111303, eff.getMdRate());
                    /* 3946 */
                    addDamageIncrease(27121100, eff.getMdRate());
                    /* 3947 */
                    addDamageIncrease(27120211, eff.getMdRate());
                    /* 3948 */
                    addDamageIncrease(27001201, eff.getMdRate());
                    /* 3949 */
                    addDamageIncrease(27101202, eff.getMdRate());
                    /* 3950 */
                    addDamageIncrease(27111202, eff.getMdRate());
                    /* 3951 */
                    addDamageIncrease(27111303, eff.getMdRate());
                    /* 3952 */
                    addDamageIncrease(27121202, eff.getMdRate());
                    /* 3953 */
                    addDamageIncrease(27121303, eff.getMdRate());

                }
                /* 3955 */
                bx = SkillFactory.getSkill(27100006);
                /* 3956 */
                bof = chra.getTotalSkillLevel(bx);
                /* 3957 */
                if (bof > 0 && bx != null) {
                    /* 3958 */
                    this.localint_ += bx.getEffect(bof).getIntX();

                }
                /* 3960 */
                bx = SkillFactory.getSkill(27111004);
                /* 3961 */
                bof = chra.getTotalSkillLevel(bx);
                /* 3962 */
                if (bof > 0 && bx != null) {
                    /* 3963 */
                    this.ASR += bx.getEffect(bof).getASRRate();
                    /* 3964 */
                    this.TER += bx.getEffect(bof).getTERRate();

                }
                /* 3966 */
                bx = SkillFactory.getSkill(27120008);
                /* 3967 */
                bof = chra.getTotalSkillLevel(bx);
                /* 3968 */
                if (bof > 0 && bx != null) {
                    /* 3969 */
                    eff = bx.getEffect(bof);
                    /* 3970 */
                    addDamageIncrease(27111303, eff.getDAMRate());
                    /* 3971 */
                    this.gauge_x = eff.getX();
                    /* 3972 */
                    addBuffDuration(20040219, eff.getDuration());
                    /* 3973 */
                    addBuffDuration(20040220, eff.getDuration());

                }



                /* 3978 */
                bx = SkillFactory.getSkill(27120043);
                /* 3979 */
                bof = chra.getTotalSkillLevel(bx);
                /* 3980 */
                if (bof > 0 && bx != null) {
                    /* 3981 */
                    addDamageIncrease(27121100, bx.getEffect(bof).getDAMRate());

                }
                /* 3983 */
                bx = SkillFactory.getSkill(27120046);
                /* 3984 */
                bof = chra.getTotalSkillLevel(bx);
                /* 3985 */
                if (bof > 0 && bx != null) {
                    /* 3986 */
                    addDamageIncrease(27121202, bx.getEffect(bof).getDAMRate());

                }
                /* 3988 */
                bx = SkillFactory.getSkill(27120048);
                /* 3989 */
                bof = chra.getTotalSkillLevel(bx);
                /* 3990 */
                if (bof > 0 && bx != null) {
                    /* 3991 */
                    addTargetPlus(27121202, bx.getId(), bx.getEffect(bof).getTargetPlus());

                }
                /* 3993 */
                bx = SkillFactory.getSkill(27120049);
                /* 3994 */
                bof = chra.getTotalSkillLevel(bx);
                /* 3995 */
                if (bof > 0 && bx != null) {
                    /* 3996 */
                    addDamageIncrease(27121303, bx.getEffect(bof).getDAMRate());

                }
                /* 3998 */
                bx = SkillFactory.getSkill(27120050);
                /* 3999 */
                bof = chra.getTotalSkillLevel(bx);
                /* 4000 */
                if (bof > 0 && bx != null) {
                    /* 4001 */
                    addTargetPlus(27121303, bx.getId(), bx.getEffect(bof).getTargetPlus());

                }

                break;











            case 3001:

            case 3100:

            case 3101:

            case 3110:

            case 3111:

            case 3112:

            case 3120:

            case 3121:

            case 3122:
                /* 4023 */
                bx = SkillFactory.getSkill(30010185);
                /* 4024 */
                bof = chra.getTotalSkillLevel(bx);
                /* 4025 */
                if (bof > 0 && bx != null) {
                    /* 4026 */
                    eff = bx.getEffect(bof);
                    /* 4027 */
                    chra.getTrait(MapleTraitType.will).setLevel(20, chra);
                    /* 4028 */
                    chra.getTrait(MapleTraitType.charisma).setLevel(20, chra);

                }
                /* 4030 */
                bx = SkillFactory.getSkill(30010241);
                /* 4031 */
                bof = chra.getTotalSkillLevel(bx);
                /* 4032 */
                if (bof > 0 && bx != null) {
                    /* 4033 */
                    eff = bx.getEffect(bof);
                    /* 4034 */
                    this.percent_damage += eff.getDAMRate();

                }

                /* 4037 */
                if (JobConstants.is恶魔复仇者(chra.getJob())) {
                    /* 4038 */
                    bx = SkillFactory.getSkill(31010003);
                    /* 4039 */
                    bof = chra.getTotalSkillLevel(bx);
                    /* 4040 */
                    if (bof > 0 && bx != null) {
                        /* 4041 */
                        eff = bx.getEffect(bof);
                        /* 4042 */
                        this.jump += eff.getPsdJump();
                        /* 4043 */
                        this.speed += eff.getPsdSpeed();

                    }
                    /* 4045 */
                    bx = SkillFactory.getSkill(31200004);
                    /* 4046 */
                    bof = chra.getTotalSkillLevel(bx);
                    /* 4047 */
                    if (bof > 0 && bx != null) {
                        /* 4048 */
                        eff = bx.getEffect(bof);
                        /* 4049 */
                        this.percent_wdef += eff.getWDEFRate();
                        /* 4050 */
                        this.percent_mdef += eff.getMDEFRate();

                    }
                    /* 4052 */
                    bx = SkillFactory.getSkill(31200005);
                    /* 4053 */
                    bof = chra.getTotalSkillLevel(bx);
                    /* 4054 */
                    if (bof > 0 && bx != null) {
                        /* 4055 */
                        eff = bx.getEffect(bof);
                        /* 4056 */
                        this.accuracy += eff.getAccX();

                    }
                    /* 4058 */
                    bx = SkillFactory.getSkill(31200006);
                    /* 4059 */
                    bof = chra.getTotalSkillLevel(bx);
                    /* 4060 */
                    if (bof > 0 && bx != null) {
                        /* 4061 */
                        eff = bx.getEffect(bof);
                        /* 4062 */
                        this.localstr += eff.getStrX();
                        /* 4063 */
                        this.wdef += eff.getWdefX();
                        /* 4064 */
                        this.mdef += eff.getMdefX();

                    }
                    /* 4066 */
                    bx = SkillFactory.getSkill(31221008);
                    /* 4067 */
                    bof = chra.getTotalSkillLevel(bx);
                    /* 4068 */
                    if (bof > 0 && bx != null) {
                        /* 4069 */
                        eff = bx.getEffect(bof);
                        /* 4070 */
                        this.percent_hp += eff.getPercentHP();

                    }
                    /* 4072 */
                    bx = SkillFactory.getSkill(31210005);
                    /* 4073 */
                    bof = chra.getTotalSkillLevel(bx);
                    /* 4074 */
                    if (bof > 0 && bx != null) {
                        /* 4075 */
                        eff = bx.getEffect(bof);
                        /* 4076 */
                        addDamageIncrease(31011000, eff.getDAMRate());
                        /* 4077 */
                        addDamageIncrease(31011004, eff.getDAMRate());
                        /* 4078 */
                        addDamageIncrease(31011005, eff.getDAMRate());
                        /* 4079 */
                        addDamageIncrease(31011006, eff.getDAMRate());
                        /* 4080 */
                        addDamageIncrease(31201000, eff.getDAMRate());
                        /* 4081 */
                        addDamageIncrease(31201007, eff.getDAMRate());
                        /* 4082 */
                        addDamageIncrease(31201008, eff.getDAMRate());
                        /* 4083 */
                        addDamageIncrease(31201009, eff.getDAMRate());
                        /* 4084 */
                        addDamageIncrease(31201010, eff.getDAMRate());
                        /* 4085 */
                        addDamageIncrease(31211000, eff.getDAMRate());
                        /* 4086 */
                        addDamageIncrease(31211007, eff.getDAMRate());
                        /* 4087 */
                        addDamageIncrease(31211008, eff.getDAMRate());
                        /* 4088 */
                        addDamageIncrease(31211009, eff.getDAMRate());
                        /* 4089 */
                        addDamageIncrease(31211010, eff.getDAMRate());
                        /* 4090 */
                        addDamageIncrease(31221000, eff.getDAMRate());
                        /* 4091 */
                        addDamageIncrease(31221009, eff.getDAMRate());
                        /* 4092 */
                        addDamageIncrease(31221010, eff.getDAMRate());
                        /* 4093 */
                        addDamageIncrease(31221011, eff.getDAMRate());
                        /* 4094 */
                        addDamageIncrease(31221012, eff.getDAMRate());

                    }
                    /* 4096 */
                    bx = SkillFactory.getSkill(31210006);
                    /* 4097 */
                    bof = chra.getTotalSkillLevel(bx);
                    /* 4098 */
                    if (bof > 0 && bx != null) {
                        /* 4099 */
                        eff = bx.getEffect(bof);
                        /* 4100 */
                        this.hpRecover_Percent += eff.getX();

                    }
                    /* 4102 */
                    bx = SkillFactory.getSkill(31220005);
                    /* 4103 */
                    bof = chra.getTotalSkillLevel(bx);
                    /* 4104 */
                    if (bof > 0 && bx != null) {
                        /* 4105 */
                        eff = bx.getEffect(bof);
                        /* 4106 */
                        this.percent_ignore_mob_def_rate += eff.getIgnoreMob();
                        /* 4107 */
                        addDamageIncrease(31211002, eff.getX());
                        /* 4108 */
                        addDamageIncrease(31211011, eff.getX());
                        /* 4109 */
                        addDamageIncrease(31221001, eff.getX());
                        /* 4110 */
                        addDamageIncrease(31221014, eff.getX());

                    }
                    /* 4112 */
                    if ((eff = chra.getSkillEffect(31220007)) != null) {
                        /* 4113 */
                        this.finalSkillID = 31220007;

                    }



                    /* 4118 */
                    bx = SkillFactory.getSkill(31220050);
                    /* 4119 */
                    bof = chra.getTotalSkillLevel(bx);
                    /* 4120 */
                    if (bof > 0 && bx != null) {
                        /* 4121 */
                        addAttackCount(31221001, bx.getEffect(bof).getZ());
                        /* 4122 */
                        addAttackCount(31221014, bx.getEffect(bof).getZ());

                    }
































                    break;

                }






























                /* 4187 */
                bx = SkillFactory.getSkill(31000002);
                /* 4188 */
                bof = chra.getTotalSkillLevel(bx);
                /* 4189 */
                if (bof > 0 && bx != null) {
                    /* 4190 */
                    eff = bx.getEffect(bof);
                    /* 4191 */
                    this.jump += eff.getPsdJump();
                    /* 4192 */
                    this.speedMax += eff.getPsdSpeed();

                }

                /* 4195 */
                bx = SkillFactory.getSkill(31000003);
                /* 4196 */
                bof = chra.getTotalSkillLevel(bx);
                /* 4197 */
                if (bof > 0 && bx != null) {
                    /* 4198 */
                    this.percent_hp += bx.getEffect(bof).getPercentHP();

                }

                /* 4201 */
                bx = SkillFactory.getSkill(31100007);
                /* 4202 */
                bof = chra.getTotalSkillLevel(bx);
                /* 4203 */
                if (bof > 0 && bx != null) {
                    /* 4204 */
                    eff = bx.getEffect(bof);
                    /* 4205 */
                    addDamageIncrease(31000004, eff.getDAMRate());
                    /* 4206 */
                    addDamageIncrease(31001006, eff.getDAMRate());
                    /* 4207 */
                    addDamageIncrease(31001007, eff.getDAMRate());
                    /* 4208 */
                    addDamageIncrease(31001008, eff.getDAMRate());

                }
                /* 4210 */
                bx = SkillFactory.getSkill(31100005);
                /* 4211 */
                bof = chra.getTotalSkillLevel(bx);
                /* 4212 */
                if (bof > 0 && bx != null) {
                    /* 4213 */
                    eff = bx.getEffect(bof);
                    /* 4214 */
                    this.localstr += eff.getStrX();
                    /* 4215 */
                    this.localdex += eff.getDexX();

                }
                /* 4217 */
                bx = SkillFactory.getSkill(31110010);
                /* 4218 */
                bof = chra.getTotalSkillLevel(bx);
                /* 4219 */
                if (bof > 0 && bx != null) {
                    /* 4220 */
                    eff = bx.getEffect(bof);
                    /* 4221 */
                    addDamageIncrease(31000004, eff.getX());
                    /* 4222 */
                    addDamageIncrease(31001006, eff.getX());
                    /* 4223 */
                    addDamageIncrease(31001007, eff.getX());
                    /* 4224 */
                    addDamageIncrease(31001008, eff.getX());

                }
                /* 4226 */
                bx = SkillFactory.getSkill(31110006);
                /* 4227 */
                bof = chra.getTotalSkillLevel(bx);
                /* 4228 */
                if (bof > 0 && bx != null) {
                    /* 4229 */
                    eff = bx.getEffect(bof);
                    /* 4230 */
                    this.percent_damage_rate += eff.getX();
                    /* 4231 */
                    this.percent_boss_damage_rate += eff.getX();
                    /* 4232 */
                    this.passive_sharpeye_rate = (short) (this.passive_sharpeye_rate + eff.getY());

                }
                /* 4234 */
                bx = SkillFactory.getSkill(31110004);
                /* 4235 */
                bof = chra.getTotalSkillLevel(bx);
                /* 4236 */
                if (bof > 0 && bx != null) {
                    /* 4237 */
                    eff = bx.getEffect(bof);
                    /* 4238 */
                    this.percent_wdef += eff.getWDEFRate();
                    /* 4239 */
                    this.TER += eff.getTERRate();
                    /* 4240 */
                    this.ASR += eff.getASRRate();

                }

                /* 4243 */
                bx = SkillFactory.getSkill(31121006);
                /* 4244 */
                bof = chra.getTotalSkillLevel(bx);
                /* 4245 */
                if (bof > 0 && bx != null) {
                    /* 4246 */
                    this.percent_ignore_mob_def_rate += bx.getEffect(bof).getIgnoreMob();

                }
                /* 4248 */
                bx = SkillFactory.getSkill(31110007);
                /* 4249 */
                bof = chra.getTotalSkillLevel(bx);
                /* 4250 */
                if (bof > 0 && bx != null) {
                    /* 4251 */
                    this.percent_damage += bx.getEffect(bof).getDAMRate();

                }
                /* 4253 */
                bx = SkillFactory.getSkill(31120011);
                /* 4254 */
                bof = chra.getTotalSkillLevel(bx);
                /* 4255 */
                if (bof > 0 && bx != null) {
                    /* 4256 */
                    eff = bx.getEffect(bof);
                    /* 4257 */
                    addDamageIncrease(31000004, eff.getX());
                    /* 4258 */
                    addDamageIncrease(31001006, eff.getX());
                    /* 4259 */
                    addDamageIncrease(31001007, eff.getX());
                    /* 4260 */
                    addDamageIncrease(31001008, eff.getX());

                }
                /* 4262 */
                bx = SkillFactory.getSkill(31120008);
                /* 4263 */
                bof = chra.getTotalSkillLevel(bx);
                /* 4264 */
                if (bof > 0 && bx != null) {
                    /* 4265 */
                    eff = bx.getEffect(bof);
                    /* 4266 */
                    this.watk += eff.getAttackX();
                    /* 4267 */
                    this.trueMastery += eff.getMastery();
                    /* 4268 */
                    this.passive_sharpeye_min_percent = (short) (this.passive_sharpeye_min_percent + eff.getCriticalMin());

                }
                /* 4270 */
                bx = SkillFactory.getSkill(31120009);
                /* 4271 */
                bof = chra.getTotalSkillLevel(bx);
                /* 4272 */
                if (bof > 0 && bx != null) {
                    /* 4273 */
                    this.percent_wdef += bx.getEffect(bof).getT();

                }
                /* 4275 */
                bx = SkillFactory.getSkill(30010111);
                /* 4276 */
                bof = chra.getTotalSkillLevel(bx);
                /* 4277 */
                if (bof > 0 && bx != null) {
                    /* 4278 */
                    eff = bx.getEffect(bof);
                    /* 4279 */
                    this.hpRecover_Percent += eff.getX();
                    /* 4280 */
                    this.hpRecoverProp += eff.getProp();

                }



                /* 4285 */
                bx = SkillFactory.getSkill(31120043);
                /* 4286 */
                bof = chra.getTotalSkillLevel(bx);
                /* 4287 */
                if (bof > 0 && bx != null) {
                    /* 4288 */
                    addDamageIncrease(31111005, bx.getEffect(bof).getDAMRate());

                }
                /* 4290 */
                bx = SkillFactory.getSkill(31120044);
                /* 4291 */
                bof = chra.getTotalSkillLevel(bx);
                /* 4292 */
                if (bof > 0 && bx != null) {
                    /* 4293 */
                    addAttackCount(31111005, bx.getEffect(bof).getAttackCount());

                }
                /* 4295 */
                bx = SkillFactory.getSkill(31120047);
                /* 4296 */
                bof = chra.getTotalSkillLevel(bx);
                /* 4297 */
                if (bof > 0 && bx != null) {
                    /* 4298 */
                    addDamageIncrease(31121005, bx.getEffect(bof).getDAMRate());

                }
                /* 4300 */
                bx = SkillFactory.getSkill(31120049);
                /* 4301 */
                bof = chra.getTotalSkillLevel(bx);
                /* 4302 */
                if (bof > 0 && bx != null) {
                    /* 4303 */
                    addDamageIncrease(31121001, bx.getEffect(bof).getDAMRate());

                }
                /* 4305 */
                bx = SkillFactory.getSkill(31120050);
                /* 4306 */
                bof = chra.getTotalSkillLevel(bx);
                /* 4307 */
                if (bof > 0 && bx != null) {
                    /* 4308 */
                    addAttackCount(31121001, bx.getEffect(bof).getAttackCount());

                }
                /* 4310 */
                bx = SkillFactory.getSkill(31121054);
                /* 4311 */
                bof = chra.getTotalSkillLevel(bx);
                /* 4312 */
                if (bof > 0 && bx != null) {
                    /* 4313 */
                    this.incMaxDamage += bx.getEffect(bof).getMaxDamageOver();

                }

                break;































































































            case 3200:

            case 3210:

            case 3211:

            case 3212:
                /* 4414 */
                bx = SkillFactory.getSkill(32000015);
                /* 4415 */
                bof = chra.getTotalSkillLevel(bx);
                /* 4416 */
                if (bof > 0 && bx != null) {
                    /* 4417 */
                    eff = bx.getEffect(bof);
                    /* 4418 */
                    this.magic += eff.getMagicX();
                    /* 4419 */
                    this.jump += eff.getPsdJump();
                    /* 4420 */
                    this.speed += eff.getPsdSpeed();

                }
                /* 4422 */
                bx = SkillFactory.getSkill(32100007);
                /* 4423 */
                bof = chra.getTotalSkillLevel(bx);
                /* 4424 */
                if (bof > 0 && bx != null) {
                    /* 4425 */
                    this.localint_ += bx.getEffect(bof).getIntX();

                }
                /* 4427 */
                bx = SkillFactory.getSkill(32100008);
                /* 4428 */
                bof = chra.getTotalSkillLevel(bx);
                /* 4429 */
                if (bof > 0 && bx != null) {
                    /* 4430 */
                    this.percent_hp += bx.getEffect(bof).getPercentHP();

                }
                /* 4432 */
                bx = SkillFactory.getSkill(32110001);
                /* 4433 */
                bof = chra.getTotalSkillLevel(bx);
                /* 4434 */
                if (bof > 0 && bx != null) {
                    /* 4435 */
                    eff = bx.getEffect(bof);
                    /* 4436 */
                    this.percent_damage += eff.getDAMRate();
                    /* 4437 */
                    this.passive_sharpeye_min_percent = (short) (this.passive_sharpeye_min_percent + eff.getCriticalMin());

                }
                /* 4439 */
                bx = SkillFactory.getSkill(32111015);
                /* 4440 */
                bof = chra.getTotalSkillLevel(bx);
                /* 4441 */
                if (bof > 0 && bx != null) {
                    /* 4442 */
                    addDamageIncrease(32101001, bx.getEffect(bof).getDAMRate());

                }
                /* 4444 */
                bx = SkillFactory.getSkill(32121004);
                /* 4445 */
                bof = chra.getTotalSkillLevel(bx);
                /* 4446 */
                if (bof > 0 && bx != null) {
                    /* 4447 */
                    addDamageIncrease(32111016, bx.getEffect(bof).getDAMRate());
                    /* 4448 */
                    if (chra.isSkillCooling(32121004)) {
                        /* 4449 */
                        this.finalSkillID = 32121011;

                    }

                }
                /* 4452 */
                bx = SkillFactory.getSkill(32121010);
                /* 4453 */
                bof = chra.getTotalSkillLevel(bx);
                /* 4454 */
                if (bof > 0 && bx != null) {
                    /* 4455 */
                    eff = bx.getEffect(bof);
                    /* 4456 */
                    this.percent_hp += eff.getPercentHP();
                    /* 4457 */
                    this.percent_mp += eff.getPercentMP();
                    /* 4458 */
                    this.percent_wdef += eff.getWDEFRate();
                    /* 4459 */
                    this.percent_mdef += eff.getMDEFRate();
                    /* 4460 */
                    this.percent_ignore_mob_def_rate += eff.getIgnoreMob();

                }



                /* 4465 */
                bx = SkillFactory.getSkill(32120057);
                /* 4466 */
                bof = chra.getTotalSkillLevel(bx);
                /* 4467 */
                if (bof > 0 && bx != null) {
                    /* 4468 */
                    addCoolTimeReduce(32121004, bx.getEffect(bof).getCooltimeReduceR());

                }
                /* 4470 */
                bx = SkillFactory.getSkill(32120058);
                /* 4471 */
                bof = chra.getTotalSkillLevel(bx);
                /* 4472 */
                if (bof > 0 && bx != null) {
                    /* 4473 */
                    addDamageIncrease(32121004, bx.getEffect(bof).getDAMRate());

                }
                /* 4475 */
                bx = SkillFactory.getSkill(32120063);
                /* 4476 */
                bof = chra.getTotalSkillLevel(bx);
                /* 4477 */
                if (bof > 0 && bx != null) {
                    /* 4478 */
                    addCoolTimeReduce(32121006, bx.getEffect(bof).getCooltimeReduceR());

                }
                /* 4480 */
                bx = SkillFactory.getSkill(32120064);
                /* 4481 */
                bof = chra.getTotalSkillLevel(bx);
                /* 4482 */
                if (bof > 0 && bx != null) {
                    /* 4483 */
                    addBuffDuration(32121006, bx.getEffect(bof).getDuration());

                }

                break;


            case 3300:

            case 3310:

            case 3311:

            case 3312:
                /* 4491 */
                bx = SkillFactory.getSkill(33001007);
                /* 4492 */
                bof = chra.getTotalSkillLevel(bx);
                /* 4493 */
                if (bof > 0 && bx != null) {
                    /* 4494 */
                    this.percent_atk += Math.min(180, chra.getLevel());
                    /* 4495 */
                    addDamageIncrease(33001007, Math.min(180, chra.getLevel()));
                    /* 4496 */
                    addDamageIncrease(33001008, Math.min(180, chra.getLevel()));
                    /* 4497 */
                    addDamageIncrease(33001009, Math.min(180, chra.getLevel()));
                    /* 4498 */
                    addDamageIncrease(33001010, Math.min(180, chra.getLevel()));
                    /* 4499 */
                    addDamageIncrease(33001011, Math.min(180, chra.getLevel()));
                    /* 4500 */
                    addDamageIncrease(33001012, Math.min(180, chra.getLevel()));
                    /* 4501 */
                    addDamageIncrease(33001013, Math.min(180, chra.getLevel()));
                    /* 4502 */
                    addDamageIncrease(33001014, Math.min(180, chra.getLevel()));
                    /* 4503 */
                    addDamageIncrease(33001015, Math.min(180, chra.getLevel()));

                }
                /* 4505 */
                eff = SkillFactory.getSkill(33000035).getEffect(1);
                /* 4506 */
                if (eff != null) {
                    /* 4507 */
                    addDamageIncrease(33001016, eff.getDamage() + Math.max(180, chra.getLevel()));

                }
                /* 4509 */
                eff = SkillFactory.getSkill(33101115).getEffect(1);
                /* 4510 */
                if (eff != null) {
                    /* 4511 */
                    addDamageIncrease(33101115, eff.getDamage() + Math.max(180, chra.getLevel()) * 2);

                }

                /* 4514 */
                bx = SkillFactory.getSkill(33000005);
                /* 4515 */
                bof = chra.getTotalSkillLevel(bx);
                /* 4516 */
                if (bof > 0 && bx != null) {
                    /* 4517 */
                    eff = bx.getEffect(bof);
                    /* 4518 */
                    this.watk += eff.getAttackX();
                    /* 4519 */
                    this.accuracy += eff.getAccX();
                    /* 4520 */
                    this.percent_acc += eff.getPercentAcc();
                    /* 4521 */
                    this.defRange += eff.getRange();

                }
                /* 4523 */
                bx = SkillFactory.getSkill(33100010);
                /* 4524 */
                bof = chra.getTotalSkillLevel(bx);
                /* 4525 */
                if (bof > 0 && bx != null) {
                    /* 4526 */
                    eff = bx.getEffect(bof);
                    /* 4527 */
                    this.localstr += eff.getStrX();
                    /* 4528 */
                    this.localdex += eff.getDexX();

                }
                /* 4530 */
                bx = SkillFactory.getSkill(33100014);
                /* 4531 */
                bof = chra.getTotalSkillLevel(bx);
                /* 4532 */
                if (bof > 0 && bx != null) {
                    /* 4533 */
                    this.percent_hp += bx.getEffect(bof).getPercentHP();

                }
                /* 4535 */
                if ((eff = chra.getSkillEffect(33100009)) != null) {
                    /* 4536 */
                    this.finalSkillID = eff.getSourceid();

                }
                /* 4538 */
                bx = SkillFactory.getSkill(33110014);
                /* 4539 */
                bof = chra.getTotalSkillLevel(bx);
                /* 4540 */
                if (bof > 0 && bx != null) {
                    /* 4541 */
                    eff = bx.getEffect(bof);
                    /* 4542 */
                    this.watk += eff.getWatk() * eff.getX();
                    /* 4543 */
                    this.passive_sharpeye_rate = (short) (this.passive_sharpeye_rate + eff.getY() * eff.getX());
                    /* 4544 */
                    this.passive_sharpeye_min_percent = (short) (this.passive_sharpeye_min_percent + 2 * eff.getX());

                }
                /* 4546 */
                bx = SkillFactory.getSkill(33111007);
                /* 4547 */
                bof = chra.getTotalSkillLevel(bx);
                /* 4548 */
                if (bof > 0 && bx != null) {
                    /* 4549 */
                    this.percent_hp += bx.getEffect(bof).getPercentHP();

                }
                /* 4551 */
                bx = SkillFactory.getSkill(33120000);
                /* 4552 */
                bof = chra.getTotalSkillLevel(bx);
                /* 4553 */
                if (bof > 0 && bx != null) {
                    /* 4554 */
                    eff = bx.getEffect(bof);
                    /* 4555 */
                    this.watk += eff.getX();
                    /* 4556 */
                    this.trueMastery += eff.getMastery();
                    /* 4557 */
                    this.passive_sharpeye_min_percent = (short) (this.passive_sharpeye_min_percent + eff.getCriticalMin());

                }
                /* 4559 */
                bx = SkillFactory.getSkill(33120010);
                /* 4560 */
                bof = chra.getTotalSkillLevel(bx);
                /* 4561 */
                if (bof > 0 && bx != null) {
                    /* 4562 */
                    eff = bx.getEffect(bof);
                    /* 4563 */
                    this.percent_ignore_mob_def_rate += eff.getIgnoreMob();
                    /* 4564 */
                    this.dodgeChance += eff.getER();

                }
                /* 4566 */
                bx = SkillFactory.getSkill(33120011);
                /* 4567 */
                bof = chra.getTotalSkillLevel(bx);
                /* 4568 */
                if (bof > 0 && bx != null) {
                    /* 4569 */
                    eff = bx.getEffect(bof);
                    /* 4570 */
                    this.watk += eff.getAttackX();
                    /* 4571 */
                    this.finalSkillID = eff.getSourceid();
                    /* 4572 */
                    addDamageIncrease(33100009, eff.getDamage());

                }


















                /* 4592 */
                bx = SkillFactory.getSkill(33120049);
                /* 4593 */
                bof = chra.getTotalSkillLevel(bx);
                /* 4594 */
                if (bof > 0 && bx != null) {
                    /* 4595 */
                    addDamageIncrease(33121114, bx.getEffect(bof).getDAMRate());

                }
                /* 4597 */
                bx = SkillFactory.getSkill(33120050);
                /* 4598 */
                bof = chra.getTotalSkillLevel(bx);
                /* 4599 */
                if (bof > 0 && bx != null) {
                    /* 4600 */
                    addIgnoreMobpdpRate(33121114, bx.getEffect(bof).getIgnoreMob());

                }


                /* 4604 */
                bx = SkillFactory.getSkill(400031005);
                /* 4605 */
                bof = chra.getTotalSkillLevel(bx);
                /* 4606 */
                if (bof > 0 && bx != null) {
                    /* 4607 */
                    addTargetPlus(33121155, bx.getId(), bx.getEffect(bof).getTargetPlus());
                    /* 4608 */
                    addTargetPlus(33121255, bx.getId(), bx.getEffect(bof).getTargetPlus());
                    /* 4609 */
                    addIgnoreMobpdpRate(33121155, bx.getEffect(bof).getIgnoreMobpdpR());
                    /* 4610 */
                    addIgnoreMobpdpRate(33121255, bx.getEffect(bof).getIgnoreMobpdpR());

                }

                break;



            case 3510:

            case 3511:

            case 3512:
                /* 4618 */
                bx = SkillFactory.getSkill(35100011);
                /* 4619 */
                bof = chra.getTotalSkillLevel(bx);
                /* 4620 */
                if (bof > 0 && bx != null) {
                    /* 4621 */
                    eff = bx.getEffect(bof);
                    /* 4622 */
                    this.localstr += eff.getStrX();
                    /* 4623 */
                    this.localdex += eff.getDexX();

                }
                /* 4625 */
                bx = SkillFactory.getSkill(35100000);
                /* 4626 */
                bof = chra.getTotalSkillLevel(bx);
                /* 4627 */
                if (bof > 0 && bx != null) {
                    /* 4628 */
                    this.watk += bx.getEffect(bof).getAttackX();

                }
                /* 4630 */
                bx = SkillFactory.getSkill(35110018);
                /* 4631 */
                bof = chra.getTotalSkillLevel(bx);
                /* 4632 */
                if (bof > 0 && bx != null) {
                    /* 4633 */
                    this.percent_hp += bx.getEffect(bof).getPercentHP();
                    /* 4634 */
                    this.percent_mp += bx.getEffect(bof).getPercentMP();

                }






                /* 4642 */
                bx = SkillFactory.getSkill(35120001);
                /* 4643 */
                bof = chra.getTotalSkillLevel(bx);
                /* 4644 */
                if (bof > 0 && bx != null) {
                    /* 4645 */
                    eff = bx.getEffect(bof);
                    /* 4646 */
                    addDamageIncrease(35101012, eff.getX());
                    /* 4647 */
                    addDamageIncrease(35121009, eff.getX());
                    /* 4648 */
                    this.BuffUP_Summon += eff.getY();

                }



                /* 4653 */
                bx = SkillFactory.getSkill(35120043);
                /* 4654 */
                bof = chra.getTotalSkillLevel(bx);
                /* 4655 */
                if (bof > 0 && bx != null) {
                    /* 4656 */
                    addDamageIncrease(35111002, bx.getEffect(bof).getDAMRate());

                }
                /* 4658 */
                bx = SkillFactory.getSkill(35120044);
                /* 4659 */
                bof = chra.getTotalSkillLevel(bx);
                /* 4660 */
                if (bof > 0 && bx != null) {
                    /* 4661 */
                    addBuffDuration(35111002, bx.getEffect(bof).getDuration());

                }
                /* 4663 */
                bx = SkillFactory.getSkill(35120045);
                /* 4664 */
                bof = chra.getTotalSkillLevel(bx);
                /* 4665 */
                if (bof > 0 && bx != null) {
                    /* 4666 */
                    addCoolTimeReduce(35111002, bx.getEffect(bof).getCooltimeReduceR());

                }
                /* 4668 */
                bx = SkillFactory.getSkill(35120046);
                /* 4669 */
                bof = chra.getTotalSkillLevel(bx);
                /* 4670 */
                if (bof > 0 && bx != null) {
                    /* 4671 */
                    addDamageIncrease(35111008, bx.getEffect(bof).getDAMRate());

                }





                /* 4678 */
                bx = SkillFactory.getSkill(35120048);
                /* 4679 */
                bof = chra.getTotalSkillLevel(bx);
                /* 4680 */
                if (bof > 0 && bx != null) {
                    /* 4681 */
                    addCoolTimeReduce(35111008, bx.getEffect(bof).getCooltimeReduceR());

                }
                /* 4683 */
                bx = SkillFactory.getSkill(35120049);
                /* 4684 */
                bof = chra.getTotalSkillLevel(bx);
                /* 4685 */
                if (bof > 0 && bx != null) {
                    /* 4686 */
                    addDamageIncrease(35121015, bx.getEffect(bof).getDAMRate());
                    /* 4687 */
                    addDamageIncrease(35121016, bx.getEffect(bof).getDAMRate());

                }
                /* 4689 */
                bx = SkillFactory.getSkill(35120050);
                /* 4690 */
                bof = chra.getTotalSkillLevel(bx);
                /* 4691 */
                if (bof > 0 && bx != null) {
                    /* 4692 */
                    addTargetPlus(35121015, bx.getId(), bx.getEffect(bof).getDuration());

                }
                /* 4694 */
                bx = SkillFactory.getSkill(35120051);
                /* 4695 */
                bof = chra.getTotalSkillLevel(bx);
                /* 4696 */
                if (bof > 0 && bx != null) {
                    /* 4697 */
                    addAttackCount(35121016, bx.getEffect(bof).getAttackCount());

                }


                /* 4701 */
                bx = SkillFactory.getSkill(400004359);
                /* 4702 */
                bof = chra.getTotalSkillLevel(bx);
                /* 4703 */
                if (bof > 0 && bx != null) {
                    /* 4704 */
                    addTargetPlus(35121009, bx.getId(), bx.getEffect(bof).getTargetPlus());
                    /* 4705 */
                    addIgnoreMobpdpRate(35121009, bx.getEffect(bof).getIgnoreMobpdpR());

                }

                break;


            case 3002:

            case 3600:

            case 3610:

            case 3611:

            case 3612:
                /* 4714 */
                bx = SkillFactory.getSkill(30020233);
                /* 4715 */
                bof = chra.getTotalSkillLevel(bx);
                /* 4716 */
                if (bof > 0 && bx != null) {
                    /* 4717 */
                    eff = bx.getEffect(bof);
                    /* 4718 */
                    this.localstr = (int) (this.localstr + eff.getStrRate() / 100.0D * this.str);
                    /* 4719 */
                    this.localdex = (int) (this.localdex + eff.getDexRate() / 100.0D * this.dex);
                    /* 4720 */
                    this.localluk = (int) (this.localluk + eff.getLukRate() / 100.0D * this.luk);
                    /* 4721 */
                    this.localint_ = (int) (this.localint_ + eff.getIntRate() / 100.0D * this.int_);

                }
                /* 4723 */
                bx = SkillFactory.getSkill(36000003);
                /* 4724 */
                bof = chra.getTotalSkillLevel(bx);
                /* 4725 */
                if (bof > 0 && bx != null) {
                    /* 4726 */
                    eff = bx.getEffect(bof);
                    /* 4727 */
                    this.accuracy += eff.getPercentAcc();
                    /* 4728 */
                    this.jump += eff.getPsdJump();
                    /* 4729 */
                    this.speed += eff.getPsdSpeed();

                }
                /* 4731 */
                bx = SkillFactory.getSkill(36001002);
                /* 4732 */
                bof = chra.getTotalSkillLevel(bx);
                /* 4733 */
                if (bof > 0 && bx != null) {
                    /* 4734 */
                    eff = bx.getEffect(bof);
                    /* 4735 */
                    this.localstr += eff.getStrX();
                    /* 4736 */
                    this.localdex += eff.getDexX();
                    /* 4737 */
                    this.localint_ += eff.getIntX();
                    /* 4738 */
                    this.localluk += eff.getLukX();

                }
                /* 4740 */
                bx = SkillFactory.getSkill(36100005);
                /* 4741 */
                bof = chra.getTotalSkillLevel(bx);
                /* 4742 */
                if (bof > 0 && bx != null) {
                    /* 4743 */
                    eff = bx.getEffect(bof);
                    /* 4744 */
                    this.localstr += eff.getStrX();
                    /* 4745 */
                    this.localdex += eff.getDexX();
                    /* 4746 */
                    this.localint_ += eff.getIntX();
                    /* 4747 */
                    this.localluk += eff.getLukX();

                }
                /* 4749 */
                bx = SkillFactory.getSkill(36100006);
                /* 4750 */
                bof = chra.getTotalSkillLevel(bx);
                /* 4751 */
                if (bof > 0 && bx != null) {
                    /* 4752 */
                    this.watk += bx.getEffect(bof).getAttackX();

                }
                /* 4754 */
                bx = SkillFactory.getSkill(36100010);
                /* 4755 */
                bof = chra.getTotalSkillLevel(bx);
                /* 4756 */
                if (bof > 0 && bx != null) {
                    /* 4757 */
                    eff = bx.getEffect(bof);
                    /* 4758 */
                    addDamageIncrease(36001005, eff.getDAMRate());

                }
                /* 4760 */
                bx = SkillFactory.getSkill(36101002);
                /* 4761 */
                bof = chra.getTotalSkillLevel(bx);
                /* 4762 */
                if (bof > 0 && bx != null) {
                    /* 4763 */
                    eff = bx.getEffect(bof);
                    /* 4764 */
                    this.localstr += eff.getStrX();
                    /* 4765 */
                    this.localdex += eff.getDexX();
                    /* 4766 */
                    this.localint_ += eff.getIntX();
                    /* 4767 */
                    this.localluk += eff.getLukX();

                }
                /* 4769 */
                bx = SkillFactory.getSkill(36110012);
                /* 4770 */
                bof = chra.getTotalSkillLevel(bx);
                /* 4771 */
                if (bof > 0 && bx != null) {
                    /* 4772 */
                    eff = bx.getEffect(bof);
                    /* 4773 */
                    if (this.damageIncrease.containsKey(Integer.valueOf(36001005))) {
                        /* 4774 */
                        addDamageIncrease(36001005, ((Integer) this.damageIncrease.get(Integer.valueOf(36001005))).intValue() + eff.getDAMRate());

                    }

                }
                /* 4777 */
                bx = SkillFactory.getSkill(36111003);
                /* 4778 */
                bof = chra.getTotalSkillLevel(bx);
                /* 4779 */
                if (bof > 0 && bx != null) {
                    /* 4780 */
                    eff = bx.getEffect(bof);
                    /* 4781 */
                    this.localstr += eff.getStrX();
                    /* 4782 */
                    this.localdex += eff.getDexX();
                    /* 4783 */
                    this.localint_ += eff.getIntX();
                    /* 4784 */
                    this.localluk += eff.getLukX();
                    /* 4785 */
                    this.wdef += eff.getWdefX();
                    /* 4786 */
                    this.mdef += eff.getMdefX();

                }
                /* 4788 */
                bx = SkillFactory.getSkill(36120015);
                /* 4789 */
                bof = chra.getTotalSkillLevel(bx);
                /* 4790 */
                if (bof > 0 && bx != null) {
                    /* 4791 */
                    eff = bx.getEffect(bof);
                    /* 4792 */
                    if (this.damageIncrease.containsKey(Integer.valueOf(36001005))) {
                        /* 4793 */
                        addDamageIncrease(36001005, ((Integer) this.damageIncrease.get(Integer.valueOf(36001005))).intValue() + eff.getDAMRate());

                    }

                }
                /* 4796 */
                bx = SkillFactory.getSkill(36121003);
                /* 4797 */
                bof = chra.getTotalSkillLevel(bx);
                /* 4798 */
                if (bof > 0 && bx != null) {
                    /* 4799 */
                    eff = bx.getEffect(bof);
                    /* 4800 */
                    this.localstr += eff.getStrX();
                    /* 4801 */
                    this.localdex += eff.getDexX();
                    /* 4802 */
                    this.localint_ += eff.getIntX();
                    /* 4803 */
                    this.localluk += eff.getLukX();

                }



                /* 4808 */
                bx = SkillFactory.getSkill(36120044);
                /* 4809 */
                bof = chra.getTotalSkillLevel(bx);
                /* 4810 */
                if (bof > 0 && bx != null) {
                    /* 4811 */
                    addDamageIncrease(36121000, bx.getEffect(bof).getDAMRate());

                }
                /* 4813 */
                bx = SkillFactory.getSkill(36120045);
                /* 4814 */
                bof = chra.getTotalSkillLevel(bx);
                /* 4815 */
                if (bof > 0 && bx != null) {
                    /* 4816 */
                    addTargetPlus(36121000, bx.getId(), bx.getEffect(bof).getTargetPlus());

                }
                /* 4818 */
                bx = SkillFactory.getSkill(36120046);
                /* 4819 */
                bof = chra.getTotalSkillLevel(bx);
                /* 4820 */
                if (bof > 0 && bx != null) {
                    /* 4821 */
                    addDamageIncrease(36121001, bx.getEffect(bof).getDAMRate());
                    /* 4822 */
                    addDamageIncrease(36121011, bx.getEffect(bof).getDAMRate());
                    /* 4823 */
                    addDamageIncrease(36121012, bx.getEffect(bof).getDAMRate());

                }
                /* 4825 */
                bx = SkillFactory.getSkill(36120047);
                /* 4826 */
                bof = chra.getTotalSkillLevel(bx);
                /* 4827 */
                if (bof > 0 && bx != null) {
                    /* 4828 */
                    addIgnoreMobpdpRate(36121001, bx.getEffect(bof).getIgnoreMob());
                    /* 4829 */
                    addIgnoreMobpdpRate(36121011, bx.getEffect(bof).getIgnoreMob());
                    /* 4830 */
                    addIgnoreMobpdpRate(36121012, bx.getEffect(bof).getIgnoreMob());

                }
                /* 4832 */
                bx = SkillFactory.getSkill(36120048);
                /* 4833 */
                bof = chra.getTotalSkillLevel(bx);
                /* 4834 */
                if (bof > 0 && bx != null) {
                    /* 4835 */
                    addTargetPlus(36121011, bx.getId(), bx.getEffect(bof).getTargetPlus());
                    /* 4836 */
                    addTargetPlus(36121012, bx.getId(), bx.getEffect(bof).getTargetPlus());

                }


                /* 4840 */
                bx = SkillFactory.getSkill(400004371);
                /* 4841 */
                bof = chra.getTotalSkillLevel(bx);
                /* 4842 */
                if (bof > 0 && bx != null) {
                    /* 4843 */
                    addTargetPlus(36121000, bx.getId(), bx.getEffect(bof).getTargetPlus());
                    /* 4844 */
                    addIgnoreMobpdpRate(36121000, bx.getEffect(bof).getIgnoreMobpdpR());

                }

                break;


            case 3700:

            case 3710:

            case 3711:

            case 3712:
                /* 4852 */
                bx = SkillFactory.getSkill(37001001);
                /* 4853 */
                bof = chra.getTotalSkillLevel(bx);
                /* 4854 */
                if (bof > 0) {
                    /* 4855 */
                    chra.getSpecialStat().setBullet(3);

                }
                /* 4857 */
                bx = SkillFactory.getSkill(37100007);
                /* 4858 */
                bof = chra.getTotalSkillLevel(bx);
                /* 4859 */
                if (bof > 0) {
                    /* 4860 */
                    chra.getSpecialStat().setBullet(4);

                }
                /* 4862 */
                bx = SkillFactory.getSkill(37110007);
                /* 4863 */
                bof = chra.getTotalSkillLevel(bx);
                /* 4864 */
                if (bof > 0) {
                    /* 4865 */
                    chra.getSpecialStat().setBullet(5);

                }
                /* 4867 */
                bx = SkillFactory.getSkill(37120008);
                /* 4868 */
                bof = chra.getTotalSkillLevel(bx);
                /* 4869 */
                if (bof > 0) {
                    /* 4870 */
                    chra.getSpecialStat().setBullet(6);

                }
                /* 4872 */
                bx = SkillFactory.getSkill(37100004);
                /* 4873 */
                bof = chra.getTotalSkillLevel(bx);
                /* 4874 */
                if (bof > 0) {
                    /* 4875 */
                    this.watk += bx.getEffect(bof).getAttackX();

                }






                /* 4883 */
                bx = SkillFactory.getSkill(37000006);
                /* 4884 */
                bof = chra.getTotalSkillLevel(bx);
                /* 4885 */
                if (bof > 0) {
                    /* 4886 */
                    this.percent_hp += bx.getEffect(bof).getPercentHP();

                }






















                /* 4910 */
                bx = SkillFactory.getSkill(37100006);
                /* 4911 */
                bof = chra.getTotalSkillLevel(bx);
                /* 4912 */
                if (bof > 0) {
                    /* 4913 */
                    this.percent_damage += bx.getEffect(bof).getDAMRate();

                }
                /* 4915 */
                bx = SkillFactory.getSkill(37120011);
                /* 4916 */
                bof = chra.getTotalSkillLevel(bx);
                /* 4917 */
                if (bof > 0) {
                    /* 4918 */
                    this.percent_ignore_mob_def_rate = (int) (this.percent_ignore_mob_def_rate + (1.0D - this.percent_ignore_mob_def_rate) * bx.getEffect(bof).getIgnoreMob() / 100.0D);

                }



                /* 4923 */
                bx = SkillFactory.getSkill(400004383);
                /* 4924 */
                bof = chra.getTotalSkillLevel(bx);
                /* 4925 */
                if (bof > 0 && bx != null) {
                    /* 4926 */
                    addTargetPlus(37121000, bx.getId(), bx.getEffect(bof).getTargetPlus());
                    /* 4927 */
                    addIgnoreMobpdpRate(37121000, bx.getEffect(bof).getIgnoreMobpdpR());

                }

                /* 4930 */
                bx = SkillFactory.getSkill(400004384);
                /* 4931 */
                bof = chra.getTotalSkillLevel(bx);
                /* 4932 */
                if (bof > 0 && bx != null) {
                    /* 4933 */
                    addTargetPlus(37120002, bx.getId(), bx.getEffect(bof).getTargetPlus());
                    /* 4934 */
                    addIgnoreMobpdpRate(37120002, bx.getEffect(bof).getIgnoreMobpdpR());

                }

                /* 4937 */
                bx = SkillFactory.getSkill(400004385);
                /* 4938 */
                bof = chra.getTotalSkillLevel(bx);
                /* 4939 */
                if (bof > 0 && bx != null) {
                    /* 4940 */
                    addTargetPlus(37121003, bx.getId(), bx.getEffect(bof).getTargetPlus());
                    /* 4941 */
                    addIgnoreMobpdpRate(37121003, bx.getEffect(bof).getIgnoreMobpdpR());

                }

                /* 4944 */
                bx = SkillFactory.getSkill(400004386);
                /* 4945 */
                bof = chra.getTotalSkillLevel(bx);
                /* 4946 */
                if (bof > 0 && bx != null) {
                    /* 4947 */
                    addTargetPlus(37121004, bx.getId(), bx.getEffect(bof).getTargetPlus());
                    /* 4948 */
                    addIgnoreMobpdpRate(37121004, bx.getEffect(bof).getIgnoreMobpdpR());

                }

                break;



            case 4100:

            case 4110:

            case 4111:

            case 4112:
                /* 4957 */
                if (chra.getJob() >= 4111) {
                    /* 4958 */
                    bx = SkillFactory.getSkill(41120006);
                    /* 4959 */
                    bof = chra.getTotalSkillLevel(bx);
                    /* 4960 */
                    if (bof > 0 && bx != null) {
                        /* 4961 */
                        eff = bx.getEffect(bof);
                        /* 4962 */
                        this.dodgeChance += eff.getPercentAvoid();

                    }

                }
                /* 4965 */
                if (chra.getJob() >= 4110) {
                    /* 4966 */
                    bx = SkillFactory.getSkill(41100006);
                    /* 4967 */
                    bof = chra.getTotalSkillLevel(bx);
                    /* 4968 */
                    if (bof > 0 && bx != null) {
                        /* 4969 */
                        eff = bx.getEffect(bof);
                        /* 4970 */
                        this.accuracy += eff.getX();
                        /* 4971 */
                        this.passive_sharpeye_max_percent = (short) (this.passive_sharpeye_max_percent + eff.getCriticalMax());
                        /* 4972 */
                        this.passive_sharpeye_min_percent = (short) (this.passive_sharpeye_min_percent + eff.getCriticalMin());

                    }

                }
                /* 4975 */
                if (chra.getJob() >= 4100) {
                    /* 4976 */
                    bx = SkillFactory.getSkill(41000003);
                    /* 4977 */
                    bof = chra.getTotalSkillLevel(bx);
                    /* 4978 */
                    if (bof > 0 && bx != null) {
                        /* 4979 */
                        eff = bx.getEffect(bof);
                        /* 4980 */
                        this.localstr += eff.getStrX();
                        /* 4981 */
                        this.localdex += eff.getDexX();

                    }

                }
                /* 4984 */
                bx = SkillFactory.getSkill(41120044);
                /* 4985 */
                bof = chra.getTotalSkillLevel(bx);
                /* 4986 */
                if (bof > 0 && bx != null) {
                    /* 4987 */
                    eff = bx.getEffect(bof);
                    /* 4988 */
                    addAttackCount(41121001, eff.getAttackCount());

                }
                /* 4990 */
                bx = SkillFactory.getSkill(41120048);
                /* 4991 */
                bof = chra.getTotalSkillLevel(bx);
                /* 4992 */
                if (bof > 0 && bx != null) {
                    /* 4993 */
                    eff = bx.getEffect(bof);
                    /* 4994 */
                    addAttackCount(41121018, eff.getAttackCount());

                }
                /* 4996 */
                bx = SkillFactory.getSkill(41120047);
                /* 4997 */
                bof = chra.getTotalSkillLevel(bx);
                /* 4998 */
                if (bof > 0 && bx != null) {
                    /* 4999 */
                    eff = bx.getEffect(bof);
                    /* 5000 */
                    addTargetPlus(41121018, bx.getId(), eff.getTargetPlus());

                }
                /* 5002 */
                bx = SkillFactory.getSkill(41120050);
                /* 5003 */
                bof = chra.getTotalSkillLevel(bx);
                /* 5004 */
                if (bof > 0 && bx != null) {
                    /* 5005 */
                    eff = bx.getEffect(bof);
                    /* 5006 */
                    addAttackCount(41121002, eff.getAttackCount());

                }
                /* 5008 */
                bx = SkillFactory.getSkill(41120051);
                /* 5009 */
                bof = chra.getTotalSkillLevel(bx);
                /* 5010 */
                if (bof > 0 && bx != null) {
                    /* 5011 */
                    addCoolTimeReduce(41121002, bx.getEffect(bof).getCooltimeReduceR());

                }


                /* 5015 */
                bx = SkillFactory.getSkill(400004498);
                /* 5016 */
                bof = chra.getTotalSkillLevel(bx);
                /* 5017 */
                if (bof > 0 && bx != null) {
                    /* 5018 */
                    addTargetPlus(41121016, bx.getId(), bx.getEffect(bof).getTargetPlus());
                    /* 5019 */
                    addIgnoreMobpdpRate(41121016, bx.getEffect(bof).getIgnoreMobpdpR());

                }

                /* 5022 */
                bx = SkillFactory.getSkill(400004493);
                /* 5023 */
                bof = chra.getTotalSkillLevel(bx);
                /* 5024 */
                if (bof > 0 && bx != null) {
                    /* 5025 */
                    addTargetPlus(41111014, bx.getId(), bx.getEffect(bof).getTargetPlus());
                    /* 5026 */
                    addIgnoreMobpdpRate(41111014, bx.getEffect(bof).getIgnoreMobpdpR());

                }

                /* 5029 */
                bx = SkillFactory.getSkill(400004489);
                /* 5030 */
                bof = chra.getTotalSkillLevel(bx);
                /* 5031 */
                if (bof > 0 && bx != null) {
                    /* 5032 */
                    addTargetPlus(41101011, bx.getId(), bx.getEffect(bof).getTargetPlus());
                    /* 5033 */
                    addIgnoreMobpdpRate(41101011, bx.getEffect(bof).getIgnoreMobpdpR());

                }

                /* 5036 */
                bx = SkillFactory.getSkill(400004484);
                /* 5037 */
                bof = chra.getTotalSkillLevel(bx);
                /* 5038 */
                if (bof > 0 && bx != null) {
                    /* 5039 */
                    addTargetPlus(41001009, bx.getId(), bx.getEffect(bof).getTargetPlus());
                    /* 5040 */
                    addIgnoreMobpdpRate(41001009, bx.getEffect(bof).getIgnoreMobpdpR());

                }

                /* 5043 */
                bx = SkillFactory.getSkill(400004500);
                /* 5044 */
                bof = chra.getTotalSkillLevel(bx);
                /* 5045 */
                if (bof > 0 && bx != null) {
                    /* 5046 */
                    addTargetPlus(41121018, bx.getId(), bx.getEffect(bof).getTargetPlus());
                    /* 5047 */
                    addIgnoreMobpdpRate(41121018, bx.getEffect(bof).getIgnoreMobpdpR());

                }

                /* 5050 */
                bx = SkillFactory.getSkill(41121052);
                /* 5051 */
                bof = chra.getTotalSkillLevel(bx);
                /* 5052 */
                if (bof > 0 && bx != null) {
                    /* 5053 */
                    addTargetPlus(41121052, bx.getId(), bx.getEffect(bof).getTargetPlus());
                    /* 5054 */
                    addIgnoreMobpdpRate(41121052, bx.getEffect(bof).getIgnoreMobpdpR());

                }

                break;




            case 4002:

            case 4210:

            case 4211:

            case 4212:
                /* 5064 */
                bx = SkillFactory.getSkill(400004505);
                /* 5065 */
                bof = chra.getTotalSkillLevel(bx);
                /* 5066 */
                if (bof > 0 && bx != null) {
                    /* 5067 */
                    addTargetPlus(42001001, bx.getId(), bx.getEffect(bof).getTargetPlus());
                    /* 5068 */
                    addIgnoreMobpdpRate(42001001, bx.getEffect(bof).getIgnoreMobpdpR());

                }

                /* 5071 */
                bx = SkillFactory.getSkill(400004507);
                /* 5072 */
                bof = chra.getTotalSkillLevel(bx);
                /* 5073 */
                if (bof > 0 && bx != null) {
                    /* 5074 */
                    addTargetPlus(42101000, bx.getId(), bx.getEffect(bof).getTargetPlus());
                    /* 5075 */
                    addIgnoreMobpdpRate(42101000, bx.getEffect(bof).getIgnoreMobpdpR());

                }

                /* 5078 */
                bx = SkillFactory.getSkill(400004511);
                /* 5079 */
                bof = chra.getTotalSkillLevel(bx);
                /* 5080 */
                if (bof > 0 && bx != null) {
                    /* 5081 */
                    addTargetPlus(42111001, bx.getId(), bx.getEffect(bof).getTargetPlus());
                    /* 5082 */
                    addIgnoreMobpdpRate(42111001, bx.getEffect(bof).getIgnoreMobpdpR());

                }

                /* 5085 */
                bx = SkillFactory.getSkill(400004514);
                /* 5086 */
                bof = chra.getTotalSkillLevel(bx);
                /* 5087 */
                if (bof > 0 && bx != null) {
                    /* 5088 */
                    addTargetPlus(42121002, bx.getId(), bx.getEffect(bof).getTargetPlus());
                    /* 5089 */
                    addIgnoreMobpdpRate(42121002, bx.getEffect(bof).getIgnoreMobpdpR());

                }

                /* 5092 */
                bx = SkillFactory.getSkill(400004517);
                /* 5093 */
                bof = chra.getTotalSkillLevel(bx);
                /* 5094 */
                if (bof > 0 && bx != null) {
                    /* 5095 */
                    addTargetPlus(42121026, bx.getId(), bx.getEffect(bof).getTargetPlus());
                    /* 5096 */
                    addIgnoreMobpdpRate(42121026, bx.getEffect(bof).getIgnoreMobpdpR());

                }

                break;



            case 5100:

            case 5110:

            case 5111:

            case 5112:
                /* 5105 */
                bx = SkillFactory.getSkill(51000001);
                /* 5106 */
                bof = chra.getTotalSkillLevel(bx);
                /* 5107 */
                if (bof > 0 && bx != null) {
                    /* 5108 */
                    eff = bx.getEffect(bof);
                    /* 5109 */
                    this.percent_wdef += eff.getWdefX();
                    /* 5110 */
                    this.percent_mdef += eff.getMdefX();

                }
                /* 5112 */
                bx = SkillFactory.getSkill(51000002);
                /* 5113 */
                bof = chra.getTotalSkillLevel(bx);
                /* 5114 */
                if (bof > 0 && bx != null) {
                    /* 5115 */
                    eff = bx.getEffect(bof);
                    /* 5116 */
                    this.accuracy += eff.getAccX();
                    /* 5117 */
                    this.jump += eff.getPsdJump();
                    /* 5118 */
                    this.speed += eff.getPsdSpeed();

                }
                /* 5120 */
                bx = SkillFactory.getSkill(51000000);
                /* 5121 */
                bof = chra.getTotalSkillLevel(bx);
                /* 5122 */
                if (bof > 0 && bx != null) {
                    /* 5123 */
                    this.percent_hp += bx.getEffect(bof).getPercentHP();

                }
                /* 5125 */
                bx = SkillFactory.getSkill(51100000);
                /* 5126 */
                bof = chra.getTotalSkillLevel(bx);
                /* 5127 */
                if (bof > 0 && bx != null) {
                    /* 5128 */
                    eff = bx.getEffect(bof);
                    /* 5129 */
                    this.localstr += eff.getStrX();
                    /* 5130 */
                    this.localdex += eff.getDexX();

                }
                /* 5132 */
                if ((eff = chra.getSkillEffect(51100002)) != null) {
                    /* 5133 */
                    this.finalSkillID += eff.getSourceid();

                }
                /* 5135 */
                bx = SkillFactory.getSkill(51110001);
                /* 5136 */
                bof = chra.getTotalSkillLevel(bx);
                /* 5137 */
                if (bof > 0 && bx != null) {
                    /* 5138 */
                    eff = bx.getEffect(bof);
                    /* 5139 */
                    this.localstr += eff.getStrX();

                }
                /* 5141 */
                bx = SkillFactory.getSkill(51120000);
                /* 5142 */
                bof = chra.getTotalSkillLevel(bx);
                /* 5143 */
                if (bof > 0 && bx != null) {
                    /* 5144 */
                    this.percent_ignore_mob_def_rate += bx.getEffect(bof).getIgnoreMob();

                }
                /* 5146 */
                bx = SkillFactory.getSkill(51120002);
                /* 5147 */
                bof = chra.getTotalSkillLevel(bx);
                /* 5148 */
                if (bof > 0 && bx != null) {
                    /* 5149 */
                    eff = bx.getEffect(bof);
                    /* 5150 */
                    this.watk += eff.getAttackX();
                    /* 5151 */
                    addDamageIncrease(51100002, eff.getDamage());
                    /* 5152 */
                    this.finalSkillID += eff.getSourceid();

                }



                /* 5157 */
                bx = SkillFactory.getSkill(51120046);
                /* 5158 */
                bof = chra.getTotalSkillLevel(bx);
                /* 5159 */
                if (bof > 0 && bx != null) {
                    /* 5160 */
                    addDamageIncrease(51121008, bx.getEffect(bof).getDAMRate());

                }
                /* 5162 */
                bx = SkillFactory.getSkill(51120047);
                /* 5163 */
                bof = chra.getTotalSkillLevel(bx);
                /* 5164 */
                if (bof > 0 && bx != null) {
                    /* 5165 */
                    addTargetPlus(51121008, bx.getId(), bx.getEffect(bof).getTargetPlus());

                }
                /* 5167 */
                bx = SkillFactory.getSkill(51120048);
                /* 5168 */
                bof = chra.getTotalSkillLevel(bx);
                /* 5169 */
                if (bof > 0 && bx != null) {
                    /* 5170 */
                    addAttackCount(51121008, bx.getEffect(bof).getAttackCount());

                }
                /* 5172 */
                bx = SkillFactory.getSkill(51120049);
                /* 5173 */
                bof = chra.getTotalSkillLevel(bx);
                /* 5174 */
                if (bof > 0 && bx != null) {
                    /* 5175 */
                    addDamageIncrease(51121007, bx.getEffect(bof).getDAMRate());

                }
                /* 5177 */
                bx = SkillFactory.getSkill(51120051);
                /* 5178 */
                bof = chra.getTotalSkillLevel(bx);
                /* 5179 */
                if (bof > 0 && bx != null) {
                    /* 5180 */
                    addAttackCount(51121007, bx.getEffect(bof).getAttackCount());

                }

                break;


            case 6000:

            case 6100:

            case 6110:

            case 6111:

            case 6112:
                /* 5189 */
                bx = SkillFactory.getSkill(60000222);
                /* 5190 */
                bof = chra.getTotalSkillLevel(bx);
                /* 5191 */
                if (bof > 0 && bx != null) {
                    /* 5192 */
                    this.percent_hp += bx.getEffect(bof).getPercentHP();

                }
                /* 5194 */
                bx = SkillFactory.getSkill(61000003);
                /* 5195 */
                bof = chra.getTotalSkillLevel(bx);
                /* 5196 */
                if (bof > 0 && bx != null) {
                    /* 5197 */
                    eff = bx.getEffect(bof);
                    /* 5198 */
                    this.percent_wdef += eff.getWdefX();
                    /* 5199 */
                    this.percent_mdef += eff.getMdefX();

                }
                /* 5201 */
                bx = SkillFactory.getSkill(61001002);
                /* 5202 */
                bof = chra.getTotalSkillLevel(bx);
                /* 5203 */
                if (bof > 0 && bx != null) {
                    /* 5204 */
                    this.speed += bx.getEffect(bof).getPsdSpeed();

                }
                /* 5206 */
                bx = SkillFactory.getSkill(61100009);
                /* 5207 */
                bof = chra.getTotalSkillLevel(bx);
                /* 5208 */
                if (bof > 0 && bx != null) {
                    /* 5209 */
                    eff = bx.getEffect(bof);
                    /* 5210 */
                    addDamageIncrease(61001000, eff.getDAMRate());
                    /* 5211 */
                    addDamageIncrease(61001004, eff.getDAMRate());
                    /* 5212 */
                    addDamageIncrease(61001005, eff.getDAMRate());

                }
                /* 5214 */
                bx = SkillFactory.getSkill(61100007);
                /* 5215 */
                bof = chra.getTotalSkillLevel(bx);
                /* 5216 */
                if (bof > 0 && bx != null) {
                    /* 5217 */
                    eff = bx.getEffect(bof);
                    /* 5218 */
                    this.localstr += eff.getStrX();
                    /* 5219 */
                    this.percent_hp += eff.getPercentHP();

                }
                /* 5221 */
                bx = SkillFactory.getSkill(61110015);
                /* 5222 */
                bof = chra.getTotalSkillLevel(bx);
                /* 5223 */
                if (bof > 0 && bx != null) {
                    /* 5224 */
                    eff = bx.getEffect(bof);
                    /* 5225 */
                    addDamageIncrease(61001000, eff.getDAMRate());
                    /* 5226 */
                    addDamageIncrease(61001004, eff.getDAMRate());
                    /* 5227 */
                    addDamageIncrease(61001005, eff.getDAMRate());

                }
                /* 5229 */
                bx = SkillFactory.getSkill(61110007);
                /* 5230 */
                bof = chra.getTotalSkillLevel(bx);
                /* 5231 */
                if (bof > 0 && bx != null) {
                    /* 5232 */
                    eff = bx.getEffect(bof);
                    /* 5233 */
                    this.localstr += eff.getStrX();
                    /* 5234 */
                    this.percent_hp += eff.getPercentHP();

                }
                /* 5236 */
                bx = SkillFactory.getSkill(61120007);
                /* 5237 */
                bof = chra.getTotalSkillLevel(bx);
                /* 5238 */
                if (bof > 0 && bx != null) {
                    /* 5239 */
                    this.watk += bx.getEffect(bof).getAttackX();

                }
                /* 5241 */
                bx = SkillFactory.getSkill(61120020);
                /* 5242 */
                bof = chra.getTotalSkillLevel(bx);
                /* 5243 */
                if (bof > 0 && bx != null) {
                    /* 5244 */
                    eff = bx.getEffect(bof);
                    /* 5245 */
                    addDamageIncrease(61001000, eff.getDAMRate());
                    /* 5246 */
                    addDamageIncrease(61001004, eff.getDAMRate());
                    /* 5247 */
                    addDamageIncrease(61001005, eff.getDAMRate());

                }
                /* 5249 */
                bx = SkillFactory.getSkill(61120011);
                /* 5250 */
                bof = chra.getTotalSkillLevel(bx);
                /* 5251 */
                if (bof > 0 && bx != null) {
                    /* 5252 */
                    this.percent_ignore_mob_def_rate += bx.getEffect(bof).getIgnoreMob();

                }



                /* 5257 */
                bx = SkillFactory.getSkill(61120043);
                /* 5258 */
                bof = chra.getTotalSkillLevel(bx);
                /* 5259 */
                if (bof > 0 && bx != null) {
                    /* 5260 */
                    addDamageIncrease(61121100, bx.getEffect(bof).getDAMRate());
                    /* 5261 */
                    addDamageIncrease(61121201, bx.getEffect(bof).getDAMRate());
                    /* 5262 */
                    addDamageIncrease(400011079, bx.getEffect(bof).getDAMRate());
                    /* 5263 */
                    addDamageIncrease(400011080, bx.getEffect(bof).getDAMRate());
                    /* 5264 */
                    addDamageIncrease(400011082, bx.getEffect(bof).getDAMRate());
                    /* 5265 */
                    addDamageIncrease(400011081, bx.getEffect(bof).getDAMRate());

                }
                /* 5267 */
                bx = SkillFactory.getSkill(61120044);
                /* 5268 */
                bof = chra.getTotalSkillLevel(bx);
                /* 5269 */
                if (bof > 0 && bx != null) {
                    /* 5270 */
                    addBuffDuration(61121100, bx.getEffect(bof).getDuration());
                    /* 5271 */
                    addBuffDuration(61121201, bx.getEffect(bof).getDuration());
                    /* 5272 */
                    addBuffDuration(400011079, bx.getEffect(bof).getDuration());
                    /* 5273 */
                    addBuffDuration(400011080, bx.getEffect(bof).getDuration());
                    /* 5274 */
                    addBuffDuration(400011082, bx.getEffect(bof).getDuration());
                    /* 5275 */
                    addBuffDuration(400011081, bx.getEffect(bof).getDuration());

                }
                /* 5277 */
                bx = SkillFactory.getSkill(61120045);
                /* 5278 */
                bof = chra.getTotalSkillLevel(bx);
                /* 5279 */
                if (bof > 0 && bx != null) {
                    /* 5280 */
                    addAttackCount(61121100, bx.getEffect(bof).getAttackCount());
                    /* 5281 */
                    addAttackCount(61121201, bx.getEffect(bof).getAttackCount());
                    /* 5282 */
                    addAttackCount(400011079, bx.getEffect(bof).getAttackCount());
                    /* 5283 */
                    addAttackCount(400011080, bx.getEffect(bof).getAttackCount());
                    /* 5284 */
                    addAttackCount(400011082, bx.getEffect(bof).getAttackCount());
                    /* 5285 */
                    addAttackCount(400011081, bx.getEffect(bof).getAttackCount());

                }
                /* 5287 */
                bx = SkillFactory.getSkill(61120046);
                /* 5288 */
                bof = chra.getTotalSkillLevel(bx);
                /* 5289 */
                if (bof > 0 && bx != null) {
                    /* 5290 */
                    addDamageIncrease(61121105, bx.getEffect(bof).getDAMRate());

                }
                /* 5292 */
                bx = SkillFactory.getSkill(61120047);
                /* 5293 */
                bof = chra.getTotalSkillLevel(bx);
                /* 5294 */
                if (bof > 0 && bx != null) {
                    /* 5295 */
                    addBuffDuration(61120018, bx.getEffect(bof).getDuration());

                }
                /* 5297 */
                bx = SkillFactory.getSkill(61120048);
                /* 5298 */
                bof = chra.getTotalSkillLevel(bx);
                /* 5299 */
                if (bof > 0 && bx != null) {
                    /* 5300 */
                    addDamageIncrease(61120018, bx.getEffect(bof).getDAMRate());

                }
                /* 5302 */
                bx = SkillFactory.getSkill(61120049);
                /* 5303 */
                bof = chra.getTotalSkillLevel(bx);
                /* 5304 */
                if (bof > 0 && bx != null) {
                    /* 5305 */
                    addDamageIncrease(61111100, bx.getEffect(bof).getDAMRate());
                    /* 5306 */
                    addDamageIncrease(61111113, bx.getEffect(bof).getDAMRate());
                    /* 5307 */
                    addDamageIncrease(61111111, bx.getEffect(bof).getDAMRate());

                }
                /* 5309 */
                bx = SkillFactory.getSkill(61120050);
                /* 5310 */
                bof = chra.getTotalSkillLevel(bx);
                /* 5311 */
                if (bof > 0 && bx != null) {
                    /* 5312 */
                    addBuffDuration(61111100, bx.getEffect(bof).getDuration());
                    /* 5313 */
                    addBuffDuration(61111113, bx.getEffect(bof).getDuration());
                    /* 5314 */
                    addBuffDuration(61111111, bx.getEffect(bof).getDuration());

                }
                /* 5316 */
                bx = SkillFactory.getSkill(61120051);
                /* 5317 */
                bof = chra.getTotalSkillLevel(bx);
                /* 5318 */
                if (bof > 0 && bx != null) {
                    /* 5319 */
                    addAttackCount(61111100, bx.getEffect(bof).getAttackCount());
                    /* 5320 */
                    addAttackCount(61111113, bx.getEffect(bof).getAttackCount());
                    /* 5321 */
                    addAttackCount(61111111, bx.getEffect(bof).getAttackCount());

                }


                /* 5325 */
                bx = SkillFactory.getSkill(400004423);
                /* 5326 */
                bof = chra.getTotalSkillLevel(bx);
                /* 5327 */
                if (bof > 0 && bx != null) {
                    /* 5328 */
                    addTargetPlus(61121100, bx.getId(), bx.getEffect(bof).getTargetPlus());
                    /* 5329 */
                    addIgnoreMobpdpRate(61121100, bx.getEffect(bof).getIgnoreMobpdpR());

                }

                /* 5332 */
                bx = SkillFactory.getSkill(400004425);
                /* 5333 */
                bof = chra.getTotalSkillLevel(bx);
                /* 5334 */
                if (bof > 0 && bx != null) {
                    /* 5335 */
                    addTargetPlus(61121104, bx.getId(), bx.getEffect(bof).getTargetPlus());
                    /* 5336 */
                    addIgnoreMobpdpRate(61121104, bx.getEffect(bof).getIgnoreMobpdpR());

                }

                break;


            case 6001:

            case 6500:

            case 6510:

            case 6511:

            case 6512:
                /* 5345 */
                bx = SkillFactory.getSkill(65000003);
                /* 5346 */
                bof = chra.getTotalSkillLevel(bx);
                /* 5347 */
                if (bof > 0 && bx != null) {
                    /* 5348 */
                    eff = bx.getEffect(bof);
                    /* 5349 */
                    this.jump += eff.getPsdJump();
                    /* 5350 */
                    this.speed += eff.getPsdSpeed();

                }
                /* 5352 */
                bx = SkillFactory.getSkill(65100003);
                /* 5353 */
                bof = chra.getTotalSkillLevel(bx);
                /* 5354 */
                if (bof > 0 && bx != null) {
                    /* 5355 */
                    this.watk += bx.getEffect(bof).getAttackX();

                }
                /* 5357 */
                bx = SkillFactory.getSkill(65100004);
                /* 5358 */
                bof = chra.getTotalSkillLevel(bx);
                /* 5359 */
                if (bof > 0 && bx != null) {
                    /* 5360 */
                    this.localdex += bx.getEffect(bof).getDexX();

                }
                /* 5362 */
                bx = SkillFactory.getSkill(65100005);
                /* 5363 */
                bof = chra.getTotalSkillLevel(bx);
                /* 5364 */
                if (bof > 0 && bx != null) {
                    /* 5365 */
                    eff = bx.getEffect(bof);
                    /* 5366 */
                    this.ASR += eff.getASRRate();
                    /* 5367 */
                    this.TER += eff.getTERRate();

                }
                /* 5369 */
                bx = SkillFactory.getSkill(65110006);
                /* 5370 */
                bof = chra.getTotalSkillLevel(bx);
                /* 5371 */
                if (bof > 0 && bx != null) {
                    /* 5372 */
                    eff = bx.getEffect(bof);
                    /* 5373 */
                    this.localdex += eff.getDexX();
                    /* 5374 */
                    this.percent_damage += eff.getDAMRate();

                }



                /* 5379 */
                bx = SkillFactory.getSkill(65120043);
                /* 5380 */
                bof = chra.getTotalSkillLevel(bx);
                /* 5381 */
                if (bof > 0 && bx != null) {
                    /* 5382 */
                    addDamageIncrease(65111007, bx.getEffect(bof).getDAMRate());
                    /* 5383 */
                    addDamageIncrease(65111100, bx.getEffect(bof).getDAMRate());

                }
                /* 5385 */
                bx = SkillFactory.getSkill(65120046);
                /* 5386 */
                bof = chra.getTotalSkillLevel(bx);
                /* 5387 */
                if (bof > 0 && bx != null) {
                    /* 5388 */
                    addDamageIncrease(65121002, bx.getEffect(bof).getDAMRate());

                }
                /* 5390 */
                bx = SkillFactory.getSkill(65120048);
                /* 5391 */
                bof = chra.getTotalSkillLevel(bx);
                /* 5392 */
                if (bof > 0 && bx != null) {
                    /* 5393 */
                    addCoolTimeReduce(65121002, bx.getEffect(bof).getCooltimeReduceR());

                }
                /* 5395 */
                bx = SkillFactory.getSkill(65120049);
                /* 5396 */
                bof = chra.getTotalSkillLevel(bx);
                /* 5397 */
                if (bof > 0 && bx != null) {
                    /* 5398 */
                    addDamageIncrease(65121003, bx.getEffect(bof).getDAMRate());

                }
                /* 5400 */
                bx = SkillFactory.getSkill(65120050);
                /* 5401 */
                bof = chra.getTotalSkillLevel(bx);
                /* 5402 */
                if (bof > 0 && bx != null) {
                    /* 5403 */
                    addCoolTimeReduce(65121003, bx.getEffect(bof).getCooltimeReduceR());

                }

                break;


            case 10000:

            case 10100:

            case 10110:

            case 10111:

            case 10112:
                /* 5412 */
                if (chra.isZeroSecondLook()) {
                    /* 5413 */
                    bx = SkillFactory.getSkill(101000103);
                    /* 5414 */
                    bof = chra.getTotalSkillLevel(bx);
                    /* 5415 */
                    if (bof > 0 && bx != null) {
                        /* 5416 */
                        eff = bx.getEffect(bof);
                        /* 5417 */
                        this.watk += eff.getAttackX();
                        /* 5418 */
                        this.percent_damage_rate += eff.getMobCountDamage();
                        /* 5419 */
                        this.percent_boss_damage_rate += eff.getBossDamage();

                    }
                    /* 5421 */
                    bx = SkillFactory.getSkill(101100102);
                    /* 5422 */
                    bof = chra.getTotalSkillLevel(bx);
                    /* 5423 */
                    if (bof > 0 && bx != null) {
                        /* 5424 */
                        eff = bx.getEffect(bof);
                        /* 5425 */
                        this.wdef += eff.getWdefX();
                        /* 5426 */
                        this.mdef += eff.getMdefX();
                        /* 5427 */
                        this.ASR += eff.getASRRate();
                        /* 5428 */
                        this.TER += eff.getTERRate();

                    }

                } else {
                    /* 5431 */
                    bx = SkillFactory.getSkill(101000203);
                    /* 5432 */
                    bof = chra.getTotalSkillLevel(bx);
                    /* 5433 */
                    if (bof > 0 && bx != null) {
                        /* 5434 */
                        eff = bx.getEffect(bof);
                        /* 5435 */
                        this.watk += eff.getAttackX();
                        /* 5436 */
                        this.jump += eff.getPsdJump();
                        /* 5437 */
                        this.speed += eff.getPsdSpeed();
                        /* 5438 */
                        this.percent_ignore_mob_def_rate += eff.getIgnoreMob();

                    }
                    /* 5440 */
                    bx = SkillFactory.getSkill(101100203);
                    /* 5441 */
                    bof = chra.getTotalSkillLevel(bx);
                    /* 5442 */
                    if (bof > 0 && bx != null) {
                        /* 5443 */
                        eff = bx.getEffect(bof);
                        /* 5444 */
                        this.percent_hp += eff.getPercentHP();
                        /* 5445 */
                        this.passive_sharpeye_rate = (short) (this.passive_sharpeye_rate + eff.getCritical());

                    }
                    /* 5447 */
                    bx = SkillFactory.getSkill(101120207);
                    /* 5448 */
                    bof = chra.getTotalSkillLevel(bx);
                    /* 5449 */
                    if (bof > 0 && bx != null) {
                        /* 5450 */
                        eff = bx.getEffect(bof);
                        /* 5451 */
                        this.passive_sharpeye_max_percent = (short) (this.passive_sharpeye_max_percent + eff.getCriticalMax());

                    }

                }
                /* 5454 */
                bx = SkillFactory.getSkill(100000279);
                /* 5455 */
                bof = chra.getTotalSkillLevel(bx);
                /* 5456 */
                if (bof > 0 && bx != null) {
                    /* 5457 */
                    eff = bx.getEffect(bof);
                    /* 5458 */
                    this.percent_damage += eff.getDAMRate();
                    /* 5459 */
                    this.localstr += bx.getEffect(bof).getStrX();
                    /* 5460 */
                    this.percent_hp += eff.getPercentHP();
                    /* 5461 */
                    this.speedMax += eff.getSpeedMax();

                }

                break;


            case 11000:

            case 11200:

            case 11210:

            case 11211:

            case 11212:
                /* 5470 */
                bx = SkillFactory.getSkill(110000800);
                /* 5471 */
                bof = chra.getTotalSkillLevel(bx);
                /* 5472 */
                if (bof > 0 && bx != null) {
                    /* 5473 */
                    eff = bx.getEffect(bof);
                    /* 5474 */
                    this.percent_hp += eff.getPercentHP();
                    /* 5475 */
                    this.percent_mp += eff.getPercentMP();
                    /* 5476 */
                    this.passive_sharpeye_rate = (short) (this.passive_sharpeye_rate + eff.getCritical());
                    /* 5477 */
                    this.percent_boss_damage_rate += eff.getBossDamage();

                }
                /* 5479 */
                bx = SkillFactory.getSkill(110000513);
                /* 5480 */
                bof = chra.getTotalSkillLevel(bx);
                /* 5481 */
                if (bof > 0 && bx != null) {
                    /* 5482 */
                    eff = bx.getEffect(bof);
                    /* 5483 */
                    this.localint_ += eff.getIntX();
                    /* 5484 */
                    this.localluk += eff.getLukX();
                    /* 5485 */
                    this.passive_sharpeye_rate = (short) (this.passive_sharpeye_rate + eff.getCritical());
                    /* 5486 */
                    this.percent_hp += eff.getPercentHP();
                    /* 5487 */
                    this.percent_mp += eff.getPercentMP();
                    /* 5488 */
                    this.percent_boss_damage_rate += eff.getBossDamage();
                    /* 5489 */
                    this.percent_damage += eff.getMagicDamage();
                    /* 5490 */
                    this.wdef += eff.getWdefX();
                    /* 5491 */
                    this.mdef += eff.getMdefX();
                    /* 5492 */
                    this.ASR += eff.getASRRate();
                    /* 5493 */
                    this.TER += eff.getTERRate();

                }



                /* 5498 */
                bx = SkillFactory.getSkill(112120047);
                /* 5499 */
                bof = chra.getTotalSkillLevel(bx);
                /* 5500 */
                if (bof > 0 && bx != null) {
                    /* 5501 */
                    addTargetPlus(112101009, bx.getId(), bx.getEffect(bof).getTargetPlus());

                }
                /* 5503 */
                bx = SkillFactory.getSkill(112120048);
                /* 5504 */
                bof = chra.getTotalSkillLevel(bx);
                /* 5505 */
                if (bof > 0 && bx != null) {
                    /* 5506 */
                    addAttackCount(112101009, bx.getEffect(bof).getAttackCount());

                }
                /* 5508 */
                bx = SkillFactory.getSkill(112120050);
                /* 5509 */
                bof = chra.getTotalSkillLevel(bx);
                /* 5510 */
                if (bof > 0 && bx != null) {
                    /* 5511 */
                    addTargetPlus(112110003, bx.getId(), bx.getEffect(bof).getTargetPlus());

                }
                /* 5513 */
                bx = SkillFactory.getSkill(112120053);
                /* 5514 */
                bof = chra.getTotalSkillLevel(bx);
                /* 5515 */
                if (bof > 0 && bx != null) {
                    /* 5516 */
                    addTargetPlus(112120000, bx.getId(), bx.getEffect(bof).getTargetPlus());
                    /* 5517 */
                    addTargetPlus(112120001, bx.getId(), bx.getEffect(bof).getTargetPlus());
                    /* 5518 */
                    addTargetPlus(112120002, bx.getId(), bx.getEffect(bof).getTargetPlus());
                    /* 5519 */
                    addTargetPlus(112120003, bx.getId(), bx.getEffect(bof).getTargetPlus());

                }



                /* 5524 */
                buffSourceId = chra.getBuffSource(MapleBuffStat.守护模式变更);
                /* 5525 */
                if (buffSourceId == 110001501) {
                    /* 5526 */
                    bx = SkillFactory.getSkill(112000011);
                    /* 5527 */
                    bof = chra.getTotalSkillLevel(bx);
                    /* 5528 */
                    if (bof > 0 && bx != null) {
                        /* 5529 */
                        eff = bx.getEffect(bof);
                        /* 5530 */
                        this.percent_hp += eff.getPercentHP();
                        /* 5531 */
                        this.localint_ += eff.getIntX();

                    }
                    /* 5533 */
                    bx = SkillFactory.getSkill(112000012);
                    /* 5534 */
                    bof = chra.getTotalSkillLevel(bx);
                    /* 5535 */
                    if (bof > 0 && bx != null) {
                        /* 5536 */
                        eff = bx.getEffect(bof);
                        /* 5537 */
                        this.percent_ignore_mob_def_rate += eff.getIgnoreMob();

                    }
                    /* 5539 */
                    bx = SkillFactory.getSkill(112000003);
                    /* 5540 */
                    bof = chra.getTotalSkillLevel(bx);
                    /* 5541 */
                    if (bof > 0 && bx != null) {
                        /* 5542 */
                        eff = bx.getEffect(bof);
                        /* 5543 */
                        addDamageIncrease(112000000, eff.getDAMRate());
                        /* 5544 */
                        addDamageIncrease(112000001, eff.getDAMRate());
                        /* 5545 */
                        addDamageIncrease(112000002, eff.getDAMRate());

                    }
                    /* 5547 */
                    bx = SkillFactory.getSkill(112000014);
                    /* 5548 */
                    bof = chra.getTotalSkillLevel(bx);
                    /* 5549 */
                    if (bof > 0 && bx != null) {
                        /* 5550 */
                        eff = bx.getEffect(bof);
                        /* 5551 */
                        this.magic += eff.getMagicX();
                        /* 5552 */
                        this.passive_sharpeye_rate = (short) (this.passive_sharpeye_rate + eff.getCritical());
                        /* 5553 */
                        this.passive_sharpeye_max_percent = (short) (this.passive_sharpeye_max_percent + eff.getCriticalMax());
                        /* 5554 */
                        this.passive_sharpeye_min_percent = (short) (this.passive_sharpeye_min_percent + eff.getCriticalMin());

                    }
                    /* 5556 */
                    bx = SkillFactory.getSkill(112000013);
                    /* 5557 */
                    bof = chra.getTotalSkillLevel(bx);
                    /* 5558 */
                    if (bof > 0 && bx != null) {
                        /* 5559 */
                        eff = bx.getEffect(bof);
                        /* 5560 */
                        this.percent_damage += eff.getMagicDamage();

                    }
                    /* 5562 */
                    bx = SkillFactory.getSkill(112001009);
                    /* 5563 */
                    bof = chra.getTotalSkillLevel(bx);
                    /* 5564 */
                    if (bof > 0 && bx != null) {
                        /* 5565 */
                        eff = bx.getEffect(bof);
                        /* 5566 */
                        this.percent_hp += eff.getPercentHP();
                        /* 5567 */
                        this.percent_mp += eff.getPercentMP();
                        /* 5568 */
                        this.percent_wdef += eff.getWDEFRate();
                        /* 5569 */
                        this.percent_mdef += eff.getMDEFRate();
                        /* 5570 */
                        this.percent_ignore_mob_def_rate += eff.getIgnoreMob();

                    }
                    /* 5572 */
                    bx = SkillFactory.getSkill(112000020);
                    /* 5573 */
                    bof = chra.getTotalSkillLevel(bx);
                    /* 5574 */
                    if (bof > 0 && bx != null) {
                        /* 5575 */
                        eff = bx.getEffect(bof);
                        /* 5576 */
                        this.magic += eff.getMagicX();
                        /* 5577 */
                        addDamageIncrease(112001006, eff.getDAMRate());

                    }
                    break;
                    /* 5579 */
                }
                if (buffSourceId == 110001502) {
                    /* 5580 */
                    bx = SkillFactory.getSkill(112100013);
                    /* 5581 */
                    bof = chra.getTotalSkillLevel(bx);
                    /* 5582 */
                    if (bof > 0 && bx != null) {
                        /* 5583 */
                        eff = bx.getEffect(bof);
                        /* 5584 */
                        this.localint_ += eff.getIntX();
                        /* 5585 */
                        this.magic += eff.getMagicX();
                        /* 5586 */
                        this.jump += eff.getPsdJump();
                        /* 5587 */
                        this.speed += eff.getPsdSpeed();

                    }
                    /* 5589 */
                    bx = SkillFactory.getSkill(112100003);
                    /* 5590 */
                    bof = chra.getTotalSkillLevel(bx);
                    /* 5591 */
                    if (bof > 0 && bx != null) {
                        /* 5592 */
                        eff = bx.getEffect(bof);
                        /* 5593 */
                        addDamageIncrease(112100000, eff.getDAMRate());
                        /* 5594 */
                        addDamageIncrease(112100002, eff.getDAMRate());
                        /* 5595 */
                        addDamageIncrease(112100001, eff.getDAMRate());
                        /* 5596 */
                        addTargetPlus(112100000, bx.getId(), eff.getTargetPlus());
                        /* 5597 */
                        addTargetPlus(112100002, bx.getId(), eff.getTargetPlus());
                        /* 5598 */
                        addTargetPlus(112100001, bx.getId(), eff.getTargetPlus());

                    }
                    /* 5600 */
                    bx = SkillFactory.getSkill(112100006);
                    /* 5601 */
                    bof = chra.getTotalSkillLevel(bx);
                    /* 5602 */
                    if (bof > 0 && bx != null) {
                        /* 5603 */
                        eff = bx.getEffect(bof);
                        /* 5604 */
                        addDamageIncrease(112101004, eff.getDAMRate());
                        /* 5605 */
                        addDamageIncrease(112101005, eff.getDAMRate());
                        /* 5606 */
                        addTargetPlus(112101004, bx.getId(), eff.getTargetPlus());
                        /* 5607 */
                        addTargetPlus(112101005, bx.getId(), eff.getTargetPlus());

                    }
                    /* 5609 */
                    bx = SkillFactory.getSkill(112100010);
                    /* 5610 */
                    bof = chra.getTotalSkillLevel(bx);
                    /* 5611 */
                    if (bof > 0 && bx != null) {
                        /* 5612 */
                        eff = bx.getEffect(bof);
                        /* 5613 */
                        this.magic += eff.getMagicX();

                    }
                    /* 5615 */
                    bx = SkillFactory.getSkill(112100014);
                    /* 5616 */
                    bof = chra.getTotalSkillLevel(bx);
                    /* 5617 */
                    if (bof > 0 && bx != null) {
                        /* 5618 */
                        eff = bx.getEffect(bof);
                        /* 5619 */
                        this.percent_ignore_mob_def_rate += eff.getIgnoreMob();
                        /* 5620 */
                        addDamageIncrease(112100000, eff.getDAMRate());
                        /* 5621 */
                        addDamageIncrease(112100002, eff.getDAMRate());
                        /* 5622 */
                        addDamageIncrease(112100003, eff.getDAMRate());
                        /* 5623 */
                        addDamageIncrease(112100001, eff.getDAMRate());
                        /* 5624 */
                        addDamageIncrease(112101004, eff.getDAMRate());
                        /* 5625 */
                        addDamageIncrease(112101005, eff.getDAMRate());
                        /* 5626 */
                        addDamageIncrease(112101007, eff.getDAMRate());
                        /* 5627 */
                        addDamageIncrease(112100012, eff.getDAMRate());
                        /* 5628 */
                        addTargetPlus(112100000, bx.getId(), eff.getTargetPlus());
                        /* 5629 */
                        addTargetPlus(112100002, bx.getId(), eff.getTargetPlus());
                        /* 5630 */
                        addTargetPlus(112100003, bx.getId(), eff.getTargetPlus());
                        /* 5631 */
                        addTargetPlus(112100001, bx.getId(), eff.getTargetPlus());
                        /* 5632 */
                        addTargetPlus(112101004, bx.getId(), eff.getTargetPlus());
                        /* 5633 */
                        addTargetPlus(112101005, bx.getId(), eff.getTargetPlus());
                        /* 5634 */
                        addTargetPlus(112101007, bx.getId(), eff.getTargetPlus());
                        /* 5635 */
                        addTargetPlus(112100012, bx.getId(), eff.getTargetPlus());

                    }
                    /* 5637 */
                    bx = SkillFactory.getSkill(112100015);
                    /* 5638 */
                    bof = chra.getTotalSkillLevel(bx);
                    /* 5639 */
                    if (bof > 0 && bx != null) {
                        /* 5640 */
                        eff = bx.getEffect(bof);
                        /* 5641 */
                        this.accuracy += eff.getAccX();
                        /* 5642 */
                        this.percent_damage += eff.getMagicDamage();
                        /* 5643 */
                        this.percent_ignore_mob_def_rate += eff.getIgnoreMob();

                    }
                    break;
                    /* 5645 */
                }
                if (buffSourceId == 110001503)
                     break;
                /* 5647 */
                if (buffSourceId == 110001504) {
                    /* 5648 */
                    bx = SkillFactory.getSkill(112120015);
                    /* 5649 */
                    bof = chra.getTotalSkillLevel(bx);
                    /* 5650 */
                    if (bof > 0 && bx != null) {
                        /* 5651 */
                        this.localint_ += bx.getEffect(bof).getIntX();

                    }

                }

                break;


            case 14200:

            case 14210:

            case 14211:

            case 14212:
                /* 5660 */
                bx = SkillFactory.getSkill(142000005);
                /* 5661 */
                bof = chra.getTotalSkillLevel(bx);
                /* 5662 */
                if (bof > 0 && bx != null) {
                    /* 5663 */
                    eff = bx.getEffect(bof);
                    /* 5664 */
                    this.percent_hp += eff.getPercentHP();

                }
                /* 5666 */
                bx = SkillFactory.getSkill(142100007);
                /* 5667 */
                bof = chra.getTotalSkillLevel(bx);
                /* 5668 */
                if (bof > 0 && bx != null) {
                    /* 5669 */
                    eff = bx.getEffect(bof);
                    /* 5670 */
                    this.percent_hp += eff.getPercentHP();

                }
                /* 5672 */
                bx = SkillFactory.getSkill(142120009);
                /* 5673 */
                bof = chra.getTotalSkillLevel(bx);
                /* 5674 */
                if (bof > 0 && bx != null) {
                    /* 5675 */
                    eff = bx.getEffect(bof);
                    /* 5676 */
                    this.BuffUP_Skill += eff.getBuffTimeRate();

                }


                /* 5680 */
                bx = SkillFactory.getSkill(400004464);
                /* 5681 */
                bof = chra.getTotalSkillLevel(bx);
                /* 5682 */
                if (bof > 0 && bx != null) {
                    /* 5683 */
                    addTargetPlus(142101003, bx.getId(), bx.getEffect(bof).getTargetPlus());
                    /* 5684 */
                    addIgnoreMobpdpRate(142101003, bx.getEffect(bof).getIgnoreMobpdpR());

                }

                /* 5687 */
                bx = SkillFactory.getSkill(400004467);
                /* 5688 */
                bof = chra.getTotalSkillLevel(bx);
                /* 5689 */
                if (bof > 0 && bx != null) {
                    /* 5690 */
                    addTargetPlus(142111007, bx.getId(), bx.getEffect(bof).getTargetPlus());
                    /* 5691 */
                    addIgnoreMobpdpRate(142111007, bx.getEffect(bof).getIgnoreMobpdpR());

                }

                /* 5694 */
                bx = SkillFactory.getSkill(400004466);
                /* 5695 */
                bof = chra.getTotalSkillLevel(bx);
                /* 5696 */
                if (bof > 0 && bx != null) {
                    /* 5697 */
                    addTargetPlus(142111002, bx.getId(), bx.getEffect(bof).getTargetPlus());
                    /* 5698 */
                    addIgnoreMobpdpRate(142111002, bx.getEffect(bof).getIgnoreMobpdpR());

                }
                /* 5700 */
                bx = SkillFactory.getSkill(400004470);
                /* 5701 */
                bof = chra.getTotalSkillLevel(bx);
                /* 5702 */
                if (bof > 0 && bx != null) {
                    /* 5703 */
                    addTargetPlus(142121005, bx.getId(), bx.getEffect(bof).getTargetPlus());
                    /* 5704 */
                    addIgnoreMobpdpRate(142121005, bx.getEffect(bof).getIgnoreMobpdpR());

                }
                /* 5706 */
                bx = SkillFactory.getSkill(400004473);
                /* 5707 */
                bof = chra.getTotalSkillLevel(bx);
                /* 5708 */
                if (bof > 0 && bx != null) {
                    /* 5709 */
                    addTargetPlus(142001002, bx.getId(), bx.getEffect(bof).getTargetPlus());
                    /* 5710 */
                    addIgnoreMobpdpRate(142001002, bx.getEffect(bof).getIgnoreMobpdpR());

                }

                break;



            case 16400:

            case 16410:

            case 16411:

            case 16412:
                /* 5719 */
                if ((eff = chra.getSkillEffect(160000001)) != null) {
                    /* 5720 */
                    this.percent_ignore_mob_def_rate += eff.getIgnoreMobpdpR();

                }
                /* 5722 */
                if ((eff = chra.getSkillEffect(164000011)) != null) {
                    /* 5723 */
                    this.speed += eff.getPsdSpeed();
                    /* 5724 */
                    this.speedMax += eff.getSpeedMax();

                }
                /* 5726 */
                if ((eff = chra.getSkillEffect(164000012)) != null) {
                    /* 5727 */
                    this.dodgeChance += eff.getER();

                }
                /* 5729 */
                if ((eff = chra.getSkillEffect(164100013)) != null) {
                    /* 5730 */
                    this.localluk += eff.getLukX();

                }
                /* 5732 */
                if ((eff = chra.getSkillEffect(164100011)) != null) {
                    /* 5733 */
                    this.passive_sharpeye_rate = (short) (this.passive_sharpeye_rate + eff.getCritical());

                }

                /* 5736 */
                if ((eff = chra.getSkillEffect(164100010)) != null) {
                    /* 5737 */
                    this.watk += eff.getPadX();
                    /* 5738 */
                    this.trueMastery += eff.getMastery();

                }
                /* 5740 */
                if ((eff = chra.getSkillEffect(164100006)) != null) {
                    /* 5741 */
                    this.passive_sharpeye_rate = (short) (this.passive_sharpeye_rate + eff.getCritical());

                }
                /* 5743 */
                if ((eff = chra.getSkillEffect(164100012)) != null) {
                    /* 5744 */
                    this.jump += eff.getPsdJump();

                }

                /* 5747 */
                if ((eff = chra.getSkillEffect(164110011)) != null) {
                    /* 5748 */
                    this.watk += eff.getPadX();

                    /* 5750 */
                    this.percent_boss_damage_rate += eff.getBossDamage();
                    /* 5751 */
                    this.passive_sharpeye_rate = (short) (this.passive_sharpeye_rate + eff.getCritical());
                    /* 5752 */
                    this.percent_ignore_mob_def_rate += eff.getIgnoreMobpdpR();

                }
                /* 5754 */
                if ((eff = chra.getSkillEffect(164110012)) != null) {
                    /* 5755 */
                    this.percent_hp += eff.getPercentHP();
                    /* 5756 */
                    this.ignore_mob_damage_rate += eff.getIgnoreMobDamR();

                }

                /* 5759 */
                if ((eff = chra.getSkillEffect(164110013)) != null) {
                    /* 5760 */
                    this.ASR += eff.getASRRate();
                    /* 5761 */
                    this.TER += eff.getTERRate();

                }
                /* 5763 */
                if ((eff = chra.getSkillEffect(164110010)) != null) {
                    /* 5764 */
                    addDamageIncrease(164001000, eff.getX());
                    /* 5765 */
                    addDamageIncrease(164101000, eff.getY());
                    /* 5766 */
                    addDamageIncrease(164100000, eff.getY());
                    /* 5767 */
                    addDamageIncrease(164101001, eff.getY());
                    /* 5768 */
                    addDamageIncrease(164101002, eff.getY());
                    /* 5769 */
                    addDamageIncrease(164101000, eff.getY());
                    /* 5770 */
                    addDamageIncrease(164001001, eff.getZ());
                    /* 5771 */
                    addDamageIncrease(164001002, eff.getZ());
                    /* 5772 */
                    addDamageIncrease(164101004, eff.getU());

                }
                /* 5774 */
                if ((eff = chra.getSkillEffect(164120010)) != null) {
                    /* 5775 */
                    this.watk += eff.getPadX();
                    /* 5776 */
                    this.trueMastery += eff.getMastery();
                    /* 5777 */
                    this.percent_damage += eff.getPercentDamageRate();

                }
                /* 5779 */
                if ((eff = chra.getSkillEffect(164120011)) != null) {
                    /* 5780 */
                    addDamageIncrease(164001000, eff.getX());
                    /* 5781 */
                    addDamageIncrease(164101000, eff.getY());
                    /* 5782 */
                    addDamageIncrease(164100000, eff.getY());
                    /* 5783 */
                    addDamageIncrease(164101001, eff.getY());
                    /* 5784 */
                    addDamageIncrease(164101002, eff.getY());
                    /* 5785 */
                    addDamageIncrease(164101000, eff.getY());
                    /* 5786 */
                    addDamageIncrease(164111000, eff.getV());
                    /* 5787 */
                    addDamageIncrease(164110000, eff.getV());
                    /* 5788 */
                    addDamageIncrease(164111001, eff.getV());
                    /* 5789 */
                    addDamageIncrease(164111002, eff.getV());
                    /* 5790 */
                    addDamageIncrease(164111009, eff.getV());
                    /* 5791 */
                    addDamageIncrease(164111010, eff.getV());
                    /* 5792 */
                    addDamageIncrease(164111011, eff.getV());
                    /* 5793 */
                    addDamageIncrease(164111003, eff.getW());
                    /* 5794 */
                    addDamageIncrease(164110003, eff.getW());
                    /* 5795 */
                    addDamageIncrease(164111004, eff.getW());
                    /* 5796 */
                    addDamageIncrease(164111005, eff.getW());
                    /* 5797 */
                    addDamageIncrease(164111006, eff.getW());
                    /* 5798 */
                    addDamageIncrease(164001001, eff.getZ());
                    /* 5799 */
                    addDamageIncrease(164001002, eff.getZ());
                    /* 5800 */
                    addDamageIncrease(164101004, eff.getU());
                    /* 5801 */
                    addDamageIncrease(164111007, eff.getU2());
                    /* 5802 */
                    this.percent_damage += eff.getDAMRate();

                }
                /* 5804 */
                if ((eff = chra.getSkillEffect(164120012)) != null) {
                    /* 5805 */
                    this.watk += eff.getPadX();
                    /* 5806 */
                    this.passive_sharpeye_rate = (short) (this.passive_sharpeye_rate + eff.getCritical());

                    /* 5808 */
                    this.percent_ignore_mob_def_rate += eff.getIgnoreMobpdpR();
                    /* 5809 */
                    this.dodgeChance += eff.getER();
                    /* 5810 */
                    this.percent_damage += eff.getPercentDamageRate();

                }
                /* 5812 */
                if ((eff = chra.getSkillEffect(164121006)) != null) {
                    /* 5813 */
                    this.dodgeChance += eff.getProp();

                }



                /* 5818 */
                if ((eff = chra.getSkillEffect(164120031)) != null) {
                    /* 5819 */
                    addDamageIncrease(164001000, eff.getDAMRate());
                    /* 5820 */
                    addDamageIncrease(164101000, eff.getDAMRate());
                    /* 5821 */
                    addDamageIncrease(164101001, eff.getDAMRate());
                    /* 5822 */
                    addDamageIncrease(164101002, eff.getDAMRate());
                    /* 5823 */
                    addDamageIncrease(164111000, eff.getDAMRate());
                    /* 5824 */
                    addDamageIncrease(164111009, eff.getDAMRate());
                    /* 5825 */
                    addDamageIncrease(164111010, eff.getDAMRate());
                    /* 5826 */
                    addDamageIncrease(164111003, eff.getDAMRate());
                    /* 5827 */
                    addDamageIncrease(164111004, eff.getDAMRate());
                    /* 5828 */
                    addDamageIncrease(164111005, eff.getDAMRate());
                    /* 5829 */
                    addDamageIncrease(164111006, eff.getDAMRate());
                    /* 5830 */
                    addDamageIncrease(164121000, eff.getDAMRate());
                    /* 5831 */
                    addDamageIncrease(164121001, eff.getDAMRate());
                    /* 5832 */
                    addDamageIncrease(164121002, eff.getDAMRate());
                    /* 5833 */
                    addDamageIncrease(164121003, eff.getDAMRate());
                    /* 5834 */
                    addDamageIncrease(164121004, eff.getDAMRate());

                }
                /* 5836 */
                if ((eff = chra.getSkillEffect(164120032)) != null) ;


                /* 5839 */
                if ((eff = chra.getSkillEffect(164120033)) != null) {
                    /* 5840 */
                    addBossDamageRate(164001000, eff.getBossDamage());
                    /* 5841 */
                    addBossDamageRate(164101000, eff.getBossDamage());
                    /* 5842 */
                    addBossDamageRate(164101001, eff.getBossDamage());
                    /* 5843 */
                    addBossDamageRate(164101002, eff.getBossDamage());
                    /* 5844 */
                    addBossDamageRate(164111000, eff.getBossDamage());
                    /* 5845 */
                    addBossDamageRate(164111009, eff.getBossDamage());
                    /* 5846 */
                    addBossDamageRate(164111010, eff.getBossDamage());
                    /* 5847 */
                    addBossDamageRate(164111003, eff.getBossDamage());
                    /* 5848 */
                    addBossDamageRate(164111004, eff.getBossDamage());
                    /* 5849 */
                    addBossDamageRate(164111005, eff.getBossDamage());
                    /* 5850 */
                    addBossDamageRate(164111006, eff.getBossDamage());
                    /* 5851 */
                    addBossDamageRate(164121000, eff.getBossDamage());
                    /* 5852 */
                    addBossDamageRate(164121001, eff.getBossDamage());
                    /* 5853 */
                    addBossDamageRate(164121002, eff.getBossDamage());
                    /* 5854 */
                    addBossDamageRate(164121003, eff.getBossDamage());
                    /* 5855 */
                    addBossDamageRate(164121004, eff.getBossDamage());

                }
                /* 5857 */
                if ((eff = chra.getSkillEffect(164120034)) != null) {
                    /* 5858 */
                    addDamageIncrease(164001001, eff.getDAMRate());
                    /* 5859 */
                    addDamageIncrease(164001002, eff.getDAMRate());

                }
                /* 5861 */
                if ((eff = chra.getSkillEffect(164120035)) != null) ;


                /* 5864 */
                if ((eff = chra.getSkillEffect(164120036)) != null) ;


                /* 5867 */
                if ((eff = chra.getSkillEffect(164120037)) != null) {
                    /* 5868 */
                    addDamageIncrease(164111008, eff.getDAMRate());

                }
                /* 5870 */
                if ((eff = chra.getSkillEffect(164120038)) != null) {
                    /* 5871 */
                    addBossDamageRate(164121007, eff.getBossDamage());
                    /* 5872 */
                    addBossDamageRate(164120007, eff.getBossDamage());

                }
                /* 5874 */
                if ((eff = chra.getSkillEffect(164120039)) != null) ;

                break;



            case 15100:

            case 15110:

            case 15111:

            case 15112:
                /* 5882 */
                bx = SkillFactory.getSkill(151000005);
                /* 5883 */
                bof = chra.getTotalSkillLevel(bx);
                /* 5884 */
                if (bof > 0 && bx != null) {
                    /* 5885 */
                    eff = bx.getEffect(bof);
                    /* 5886 */
                    this.watk += eff.getX();
                    /* 5887 */
                    this.percent_wdef += eff.getWdefX();
                    /* 5888 */
                    this.percent_mdef += eff.getMdefX();
                    /* 5889 */
                    this.addmaxhp += eff.getMaxHpX();
                    /* 5890 */
                    this.speed += eff.getSpeed();
                    /* 5891 */
                    this.jump += eff.getJump();
                    /* 5892 */
                    this.ignore_mob_damage_rate += eff.getIgnoreMobDamR();

                }
                /* 5894 */
                bx = SkillFactory.getSkill(151100016);
                /* 5895 */
                bof = chra.getTotalSkillLevel(bx);
                /* 5896 */
                if (bof > 0 && bx != null) {
                    /* 5897 */
                    eff = bx.getEffect(bof);
                    /* 5898 */
                    this.localstr += eff.getStrX();
                    /* 5899 */
                    this.localdex += eff.getDexX();

                }
                /* 5901 */
                bx = SkillFactory.getSkill(151110007);
                /* 5902 */
                bof = chra.getTotalSkillLevel(bx);
                /* 5903 */
                if (bof > 0 && bx != null) {
                    /* 5904 */
                    eff = bx.getEffect(bof);
                    /* 5905 */
                    this.stanceProp = eff.getStanceProp();
                    /* 5906 */
                    this.percent_hp += eff.getPercentHP();
                    /* 5907 */
                    this.ASR += bx.getEffect(bof).getASRRate();
                    /* 5908 */
                    this.TER += eff.getTERRate();

                }
                /* 5910 */
                bx = SkillFactory.getSkill(151120010);
                /* 5911 */
                bof = chra.getTotalSkillLevel(bx);
                /* 5912 */
                if (bof > 0 && bx != null) {
                    /* 5913 */
                    eff = bx.getEffect(bof);
                    /* 5914 */
                    this.watk += eff.getPadX();
                    /* 5915 */
                    this.percent_boss_damage_rate += eff.getBossDamage();
                    /* 5916 */
                    this.percent_hp += eff.getPercentHP();
                    /* 5917 */
                    this.passive_sharpeye_rate = (short) (this.passive_sharpeye_rate + eff.getCritical());

                }

                break;

        }
        /* 5921 */
        bx = SkillFactory.getSkill(80000000);
        /* 5922 */
        bof = chra.getSkillLevel(bx);
        /* 5923 */
        if (bof > 0 && bx != null) {
            /* 5924 */
            eff = bx.getEffect(bof);
            /* 5925 */
            this.localstr += eff.getStrX();
            /* 5926 */
            this.localdex += eff.getDexX();
            /* 5927 */
            this.localint_ += eff.getIntX();
            /* 5928 */
            this.localluk += eff.getLukX();
            /* 5929 */
            this.percent_hp = (int) (this.percent_hp + eff.getHpR());
            /* 5930 */
            this.percent_mp = (int) (this.percent_mp + eff.getMpR());

        }
        /* 5932 */
        bx = SkillFactory.getSkill(80000001);
        /* 5933 */
        bof = chra.getSkillLevel(bx);
        /* 5934 */
        if (bof > 0 && bx != null) {
            /* 5935 */
            eff = bx.getEffect(bof);
            /* 5936 */
            this.percent_boss_damage_rate += eff.getBossDamage();

        }
        /* 5938 */
        if (JobConstants.is反抗者(chra.getJob())) {
            /* 5939 */
            bx = SkillFactory.getSkill(30000002);
            /* 5940 */
            bof = chra.getTotalSkillLevel(bx);
            /* 5941 */
            if (bof > 0 && bx != null) {
                /* 5942 */
                this.RecoveryUP += bx.getEffect(bof).getX() - 100;

            }

        }



        /* 5948 */
        bx = SkillFactory.getSkill(80000400);
        /* 5949 */
        bof = chra.getTotalSkillLevel(bx);
        /* 5950 */
        if (bof > 0 && bx != null && bx.isHyperStat()) {
            /* 5951 */
            this.localstr += bx.getEffect(bof).getStrX();

        }
        /* 5953 */
        bx = SkillFactory.getSkill(80000401);
        /* 5954 */
        bof = chra.getTotalSkillLevel(bx);
        /* 5955 */
        if (bof > 0 && bx != null && bx.isHyperStat()) {
            /* 5956 */
            this.localdex += bx.getEffect(bof).getDexX();

        }
        /* 5958 */
        bx = SkillFactory.getSkill(80000402);
        /* 5959 */
        bof = chra.getTotalSkillLevel(bx);
        /* 5960 */
        if (bof > 0 && bx != null && bx.isHyperStat()) {
            /* 5961 */
            this.localint_ += bx.getEffect(bof).getIntX();

        }
        /* 5963 */
        bx = SkillFactory.getSkill(80000403);
        /* 5964 */
        bof = chra.getTotalSkillLevel(bx);
        /* 5965 */
        if (bof > 0 && bx != null && bx.isHyperStat()) {
            /* 5966 */
            this.localluk += bx.getEffect(bof).getLukX();

        }
        /* 5968 */
        bx = SkillFactory.getSkill(80000404);
        /* 5969 */
        bof = chra.getTotalSkillLevel(bx);
        /* 5970 */
        if (bof > 0 && bx != null && bx.isHyperStat()) {
            /* 5971 */
            this.percent_hp += bx.getEffect(bof).getPercentHP();

        }
        /* 5973 */
        bx = SkillFactory.getSkill(80000405);
        /* 5974 */
        bof = chra.getTotalSkillLevel(bx);
        /* 5975 */
        if (bof > 0 && bx != null && bx.isHyperStat() &&
                /* 5976 */       !JobConstants.is恶魔猎手(chra.getJob())) {
            /* 5977 */
            this.percent_mp += bx.getEffect(bof).getPercentMP();

        }

        /* 5980 */
        bx = SkillFactory.getSkill(80000406);
        /* 5981 */
        bof = chra.getTotalSkillLevel(bx);
        /* 5982 */
        if (bof > 0 && bx != null && bx.isHyperStat()) {
            /* 5983 */
            this.incMaxDF += bx.getEffect(bof).getIndieMaxDF();

        }
        /* 5985 */
        bx = SkillFactory.getSkill(80000407);
        /* 5986 */
        bof = chra.getTotalSkillLevel(bx);
        /* 5987 */
        if (bof > 0 && bx != null && bx.isHyperStat()) {
            /* 5988 */
            this.speed += bx.getEffect(bof).getPsdSpeed();

        }
        /* 5990 */
        bx = SkillFactory.getSkill(80000408);
        /* 5991 */
        bof = chra.getTotalSkillLevel(bx);
        /* 5992 */
        if (bof > 0 && bx != null && bx.isHyperStat()) {
            /* 5993 */
            this.jump += bx.getEffect(bof).getPsdJump();

        }
        /* 5995 */
        bx = SkillFactory.getSkill(80000409);
        /* 5996 */
        bof = chra.getTotalSkillLevel(bx);
        /* 5997 */
        if (bof > 0 && bx != null && bx.isHyperStat()) {
            /* 5998 */
            this.passive_sharpeye_rate = (short) (this.passive_sharpeye_rate + bx.getEffect(bof).getCritical());

        }

    }











































    private void handleBuffStats(MapleCharacter chra) {
        /* 6043 */
        MapleStatEffect effect = chra.getStatForBuff(MapleBuffStat.骑兽技能);
        /* 6044 */
        if (effect != null && effect.getSourceid() == 33001001) {
            /* 6045 */
            this.passive_sharpeye_rate = (short) (this.passive_sharpeye_rate + effect.getW());
            /* 6046 */
            this.percent_hp += effect.getZ();

        }
        /* 6048 */
        Integer buff = chra.getBuffedValue(MapleBuffStat.物理攻击);
        /* 6049 */
        if (buff != null) {
            /* 6050 */
            this.watk += buff.intValue();

        }
        /* 6052 */
        buff = chra.getBuffedValue(MapleBuffStat.物理防御);
        /* 6053 */
        if (buff != null) {
            /* 6054 */
            this.wdef += buff.intValue();

        }

        /* 6057 */
        if (buff != null) {
            /* 6058 */
            this.mdef += buff.intValue();

        }
        /* 6060 */
        buff = chra.getBuffedValue(MapleBuffStat.魔法攻击);
        /* 6061 */
        if (buff != null) {
            /* 6062 */
            this.magic += buff.intValue();

        }
        /* 6064 */
        buff = chra.getBuffedValue(MapleBuffStat.命中率);
        /* 6065 */
        if (buff != null) {
            /* 6066 */
            this.accuracy += buff.intValue();

        }

        /* 6069 */
        buff = chra.getBuffedSkill_Y(MapleBuffStat.隐身术);
        /* 6070 */
        if (buff != null) {
            /* 6071 */
            this.percent_damage_rate += buff.intValue();
            /* 6072 */
            this.percent_boss_damage_rate += buff.intValue();

        }
        /* 6074 */
        buff = chra.getBuffedValue(MapleBuffStat.移动速度);
        /* 6075 */
        if (buff != null) {
            /* 6076 */
            this.speed += buff.intValue();

        }
        /* 6078 */
        buff = chra.getBuffedValue(MapleBuffStat.跳跃力);
        /* 6079 */
        if (buff != null) {
            /* 6080 */
            this.jump += buff.intValue();

        }
        /* 6082 */
        buff = chra.getBuffedValue(MapleBuffStat.MAXHP);
        /* 6083 */
        if (buff != null) {
            /* 6084 */
            this.percent_hp += buff.intValue();

        }
        /* 6086 */
        buff = chra.getBuffedValue(MapleBuffStat.MAXMP);
        /* 6087 */
        if (buff != null) {
            /* 6088 */
            this.percent_mp += buff.intValue();

        }
        /* 6090 */
        buff = chra.getBuffedValue(MapleBuffStat.斗气集中);
        /* 6091 */
        if (buff != null) {
            /* 6092 */
            Skill combos = SkillFactory.getSkill(1110013);
            /* 6093 */
            int comboslevel = chra.getTotalSkillLevel(combos);
            /* 6094 */
            if (comboslevel > 0) {
                /* 6095 */
                effect = combos.getEffect(comboslevel);
                /* 6096 */
                this.percent_damage_rate += (buff.intValue() * effect.getX());
                /* 6097 */
                this.percent_boss_damage_rate += buff.intValue() * effect.getX();

            }

        }
        /* 6100 */
        effect = chra.getStatForBuff(MapleBuffStat.IndieSummoned);
        /* 6101 */
        if (effect != null &&
                /* 6102 */       effect.getSourceid() == 35111008) {
            /* 6103 */
            this.percent_damage_rate += effect.getX();
            /* 6104 */
            this.percent_boss_damage_rate += effect.getX();

        }

        /* 6107 */
        effect = chra.getStatForBuff(MapleBuffStat.属性攻击);
        /* 6108 */
        if (effect != null) {
            /* 6109 */
            this.percent_damage_rate += effect.getDamage();
            /* 6110 */
            this.percent_boss_damage_rate += effect.getDamage();

        }
        /* 6112 */
        effect = chra.getStatForBuff(MapleBuffStat.敛财术);
        /* 6113 */
        if (effect != null) {
            /* 6114 */
            this.pickRate = effect.getProp();

        }
        /* 6116 */
        buff = chra.getBuffedValue(MapleBuffStat.金钱护盾);
        /* 6117 */
        if (buff != null) {
            /* 6118 */
            this.mesoGuardMeso += buff.doubleValue();

        }

        /* 6121 */
        buff = chra.getBuffedValue(MapleBuffStat.冒险岛勇士);
        /* 6122 */
        if (buff != null) {
            /* 6123 */
            double d = buff.doubleValue() / 100.0D;
            /* 6124 */
            this.localstr = (int) (this.localstr + d * this.str);
            /* 6125 */
            this.localdex = (int) (this.localdex + d * this.dex);
            /* 6126 */
            this.localluk = (int) (this.localluk + d * this.luk);
            /* 6127 */
            this.localint_ = (int) (this.localint_ + d * this.int_);

        }
        /* 6129 */
        effect = chra.getStatForBuff(MapleBuffStat.火眼晶晶);
        /* 6130 */
        if (effect != null) {
            /* 6131 */
            this.passive_sharpeye_rate = (short) (this.passive_sharpeye_rate + effect.getX());
            /* 6132 */
            this.passive_sharpeye_max_percent = (short) (this.passive_sharpeye_max_percent + effect.getCriticalMax());

        }
        /* 6134 */
        buff = chra.getBuffedValue(MapleBuffStat.终极无限);
        /* 6135 */
        if (buff != null) {
            /* 6136 */
            this.percent_matk += buff.intValue() - 1;

        }




        /* 6142 */
        buff = chra.getBuffedValue(MapleBuffStat.英雄回声);
        /* 6143 */
        if (buff != null) {
            /* 6144 */
            double d = buff.doubleValue() / 100.0D;
            /* 6145 */
            this.watk += (int) (this.watk * d);
            /* 6146 */
            this.magic += (int) (this.magic * d);

        }
        /* 6148 */
        buff = chra.getBuffedValue(MapleBuffStat.MESO_RATE);
        /* 6149 */
        if (buff != null) {
            /* 6150 */
            this.mesoBuff *= buff.doubleValue() / 100.0D;

        }
        /* 6152 */
        buff = chra.getBuffedValue(MapleBuffStat.DROP_RATE);
        /* 6153 */
        if (buff != null) {
            /* 6154 */
            this.dropBuff *= buff.doubleValue() / 100.0D;

        }
        /* 6156 */
        buff = chra.getBuffedValue(MapleBuffStat.EXPRATE);
        /* 6157 */
        if (buff != null) {
            /* 6158 */
            this.expBuff *= buff.doubleValue() / 100.0D;

        }
        /* 6160 */
        buff = chra.getBuffedValue(MapleBuffStat.ACASH_RATE);
        /* 6161 */
        if (buff != null) {
            /* 6162 */
            this.cashBuff *= buff.doubleValue() / 100.0D;

        }
        /* 6164 */
        buff = chra.getBuffedSkill_X(MapleBuffStat.狂暴战魂);
        /* 6165 */
        if (buff != null) {
            /* 6166 */
            this.percent_damage_rate += buff.intValue();
            /* 6167 */
            this.percent_boss_damage_rate += buff.intValue();

        }

        /* 6170 */
        buff = chra.getBuffedValue(MapleBuffStat.矛连击强化);
        /* 6171 */
        if (buff != null) {
            /* 6172 */
            int level = Math.max(1, chra.getAranCombo() / 10);
            /* 6173 */
            if (chra.getTotalSkillLevel(21110000) > 0) {
                /* 6174 */
                effect = SkillFactory.getSkill(21110000).getEffect(chra.getTotalSkillLevel(21110000));
                /* 6175 */
                int num = Math.min(effect.getX(), level);
                /* 6176 */
                this.watk += num * effect.getW();
                /* 6177 */
                this.ASR += num * effect.getW();
                /* 6178 */
                this.passive_sharpeye_rate = (short) (this.passive_sharpeye_rate + num * effect.getY());
                /* 6179 */
            } else if (chra.getTotalSkillLevel(21000000) > 0) {
                /* 6180 */
                effect = SkillFactory.getSkill(21000000).getEffect(chra.getTotalSkillLevel(21000000));
                /* 6181 */
                int num = Math.min(effect.getX(), level);
                /* 6182 */
                this.watk += num * effect.getY();

            }

        }
        /* 6185 */
        effect = chra.getStatForBuff(MapleBuffStat.抗魔领域);
        /* 6186 */
        if (effect != null) {
            /* 6187 */
            this.ASR += effect.getX();

        }
        /* 6189 */
        effect = chra.getStatForBuff(MapleBuffStat.雷鸣冲击);
        /* 6190 */
        if (effect != null) {
            /* 6191 */
            this.percent_damage_rate += effect.getDamage();
            /* 6192 */
            this.percent_boss_damage_rate += effect.getDamage();

        }
        /* 6194 */
        buff = chra.getBuffedSkill_X(MapleBuffStat.葵花宝典);
        /* 6195 */
        if (buff != null) {
            /* 6196 */
            this.percent_damage_rate += buff.intValue();
            /* 6197 */
            this.percent_boss_damage_rate += buff.intValue();

        }
        /* 6199 */
        buff = chra.getBuffedSkill_Y(MapleBuffStat.终极斩);
        /* 6200 */
        if (buff != null) {
            /* 6201 */
            this.percent_damage_rate += buff.intValue();
            /* 6202 */
            this.percent_boss_damage_rate += buff.intValue();

        }
        /* 6204 */
        buff = chra.getBuffedValue(MapleBuffStat.DAMAGE_BUFF);
        /* 6205 */
        if (buff != null) {
            /* 6206 */
            this.percent_damage_rate += buff.intValue();
            /* 6207 */
            this.percent_boss_damage_rate += buff.intValue();

        }
        /* 6209 */
        buff = chra.getBuffedValue(MapleBuffStat.ATTACK_BUFF);
        /* 6210 */
        if (buff != null) {
            /* 6211 */
            this.percent_damage_rate += buff.intValue();
            /* 6212 */
            this.percent_boss_damage_rate += buff.intValue();

        }
        /* 6214 */
        buff = chra.getBuffedValue(MapleBuffStat.增强_物理攻击);
        /* 6215 */
        if (buff != null) {
            /* 6216 */
            this.watk += buff.intValue();

        }
        /* 6218 */
        buff = chra.getBuffedValue(MapleBuffStat.增强_魔法攻击);
        /* 6219 */
        if (buff != null) {
            /* 6220 */
            this.magic += buff.intValue();

        }
        /* 6222 */
        buff = chra.getBuffedValue(MapleBuffStat.增强_物理防御);
        /* 6223 */
        if (buff != null) {
            /* 6224 */
            this.wdef += buff.intValue();

        }





        /* 6231 */
        buff = chra.getBuffedValue(MapleBuffStat.呼啸_爆击概率);
        /* 6232 */
        if (buff != null) {
            /* 6233 */
            this.passive_sharpeye_rate = (short) (this.passive_sharpeye_rate + buff.intValue());

        }
        /* 6235 */
        buff = chra.getBuffedValue(MapleBuffStat.呼啸_MaxMp增加);
        /* 6236 */
        if (buff != null) {
            /* 6237 */
            this.percent_mp += buff.intValue();

        }
        /* 6239 */
        effect = chra.getStatForBuff(MapleBuffStat.金属机甲);
        /* 6240 */
        if (effect != null) {
            /* 6241 */
            this.passive_sharpeye_rate = (short) (this.passive_sharpeye_rate + effect.getCritical());

        }










        /* 6253 */
        buff = chra.getBuffedValue(MapleBuffStat.ATTACK_BUFF);
        /* 6254 */
        if (buff != null) {
            /* 6255 */
            this.percent_hp += buff.intValue();

        }
        /* 6257 */
        buff = chra.getBuffedValue(MapleBuffStat.幸运钱);
        /* 6258 */
        if (buff != null) {
            /* 6259 */
            this.incMaxDamage += buff.intValue() * 10000000;

        }
        /* 6261 */
        buff = chra.getBuffedValue(MapleBuffStat.幸运骰子);
        /* 6262 */
        if (buff != null) {
            /* 6263 */
            this.percent_wdef += GameConstants.getDiceStat(buff.intValue(), 2);
            /* 6264 */
            this.percent_mdef += GameConstants.getDiceStat(buff.intValue(), 2);
            /* 6265 */
            this.percent_hp += GameConstants.getDiceStat(buff.intValue(), 3);
            /* 6266 */
            this.percent_mp += GameConstants.getDiceStat(buff.intValue(), 3);
            /* 6267 */
            this.passive_sharpeye_rate = (short) (this.passive_sharpeye_rate + GameConstants.getDiceStat(buff.intValue(), 4));
            /* 6268 */
            this.percent_damage_rate += GameConstants.getDiceStat(buff.intValue(), 5);
            /* 6269 */
            this.percent_boss_damage_rate += GameConstants.getDiceStat(buff.intValue(), 5);
            /* 6270 */
            this.expBuff *= (GameConstants.getDiceStat(buff.intValue(), 6) + 100.0D) / 100.0D;

        }
        /* 6272 */
        effect = chra.getStatForBuff(MapleBuffStat.祝福护甲);
        /* 6273 */
        if (effect != null) {
            /* 6274 */
            this.watk += effect.getEnhancedWatk();

        }
        /* 6276 */
        effect = chra.getStatForBuff(MapleBuffStat.反制攻击);
        /* 6277 */
        if (effect != null) {
            /* 6278 */
            switch (effect.getSourceid()) {

                case 5120011:

                case 5220012:
                    /* 6281 */
                    this.percent_damage_rate += effect.getIndieDamR();
                    /* 6282 */
                    this.percent_boss_damage_rate += effect.getIndieDamR();

                    break;

                case 5121015:
                    /* 6285 */
                    this.percent_damage_rate += effect.getX();
                    /* 6286 */
                    this.percent_boss_damage_rate += effect.getX();

                    break;

                case 31121005:
                    /* 6289 */
                    this.percent_damage += effect.getDAMRate();

                    break;

                default:
                    /* 6292 */
                    this.percent_damage_rate += effect.getDAMRate();
                    /* 6293 */
                    this.percent_boss_damage_rate += effect.getDAMRate();

                    break;

            }

        }
        /* 6297 */
        buff = chra.getBuffedSkill_X(MapleBuffStat.战斗命令);
        /* 6298 */
        if (buff != null) {
            /* 6299 */
            this.combatOrders += buff.intValue();

        }
        /* 6301 */
        effect = chra.getStatForBuff(MapleBuffStat.灵魂助力);
        /* 6302 */
        if (effect != null) {
            /* 6303 */
            this.trueMastery += effect.getMastery();

        }
        /* 6305 */
        effect = chra.getStatForBuff(MapleBuffStat.牧师祝福);
        /* 6306 */
        if (effect != null) {
            /* 6307 */
            this.watk += effect.getX();
            /* 6308 */
            this.magic += effect.getY();
            /* 6309 */
            this.accuracy += effect.getV();

        }

        /* 6312 */
        buff = chra.getBuffedValue(MapleBuffStat.增加物理攻击力);
        /* 6313 */
        if (buff != null) {
            /* 6314 */
            this.watk += buff.intValue();

        }
        /* 6316 */
        buff = chra.getBuffedValue(MapleBuffStat.增加魔法攻击力);
        /* 6317 */
        if (buff != null) {
            /* 6318 */
            this.magic += buff.intValue();

        }
        /* 6320 */
        buff = chra.getBuffedValue(MapleBuffStat.增加命中值);
        /* 6321 */
        if (buff != null) {
            /* 6322 */
            this.accuracy += buff.intValue();

        }
        /* 6324 */
        buff = chra.getBuffedValue(MapleBuffStat.增加所有属性);
        /* 6325 */
        if (buff != null) {
            /* 6326 */
            this.localstr += buff.intValue();
            /* 6327 */
            this.localdex += buff.intValue();
            /* 6328 */
            this.localint_ += buff.intValue();
            /* 6329 */
            this.localluk += buff.intValue();

        }
        /* 6331 */
        buff = chra.getBuffedValue(MapleBuffStat.PVP_DAMAGE);
        /* 6332 */
        if (buff != null) {
            /* 6333 */
            this.pvpDamage += buff.intValue();

        }
        /* 6335 */
        buff = chra.getBuffedValue(MapleBuffStat.PVP_ATTACK);
        /* 6336 */
        if (buff != null) {
            /* 6337 */
            this.pvpDamage += buff.intValue();

        }
        /* 6339 */
        effect = chra.getStatForBuff(MapleBuffStat.潜力解放);
        /* 6340 */
        if (effect != null) {
            /* 6341 */
            this.passive_sharpeye_rate = 100;
            /* 6342 */
            this.ASR = 100;
            /* 6343 */
            this.wdef += effect.getX();
            /* 6344 */
            this.mdef += effect.getX();
            /* 6345 */
            this.watk += effect.getX();
            /* 6346 */
            this.magic += effect.getX();

        }

        /* 6349 */
        buff = chra.getBuffedValue(MapleBuffStat.伤害吸收);
        /* 6350 */
        if (buff != null) {
            /* 6351 */
            this.reduceDamageRate += buff.intValue();

        }
        /* 6353 */
        buff = chra.getBuffedSkill_X(MapleBuffStat.属性抗性);
        /* 6354 */
        if (buff != null) {
            /* 6355 */
            this.TER += buff.intValue();

        }
        /* 6357 */
        buff = chra.getBuffedValue(MapleBuffStat.提升物理防御力);
        /* 6358 */
        if (buff != null) {
            /* 6359 */
            this.wdef += buff.intValue();

        }
        /* 6361 */
        effect = chra.getStatForBuff(MapleBuffStat.精神连接);
        /* 6362 */
        if (effect != null &&
                /* 6363 */       effect.is船员统帅()) {
            /* 6364 */
            this.watk += effect.getWatk();
            /* 6365 */
            this.passive_sharpeye_rate = (short) (this.passive_sharpeye_rate + effect.getCritical());

        }

        /* 6368 */
        buff = chra.getBuffedValue(MapleBuffStat.爆击提升);
        /* 6369 */
        if (buff != null) {
            /* 6370 */
            this.passive_sharpeye_rate = (short) (this.passive_sharpeye_rate + buff.intValue());
            /* 6371 */
            this.percent_damage_rate += buff.intValue();
            /* 6372 */
            this.percent_boss_damage_rate += buff.intValue();

        }

        /* 6375 */
        buff = chra.getBuffedValue(MapleBuffStat.增加最大HP百分比);
        /* 6376 */
        if (buff != null) {
            /* 6377 */
            this.percent_hp += buff.intValue();

        }
        /* 6379 */
        buff = chra.getBuffedValue(MapleBuffStat.增加最大MP百分比);
        /* 6380 */
        if (buff != null) {
            /* 6381 */
            this.percent_mp += buff.intValue();

        }
        /* 6383 */
        buff = chra.getBuffedValue(MapleBuffStat.百分比无视防御);
        /* 6384 */
        if (buff != null) {
            /* 6385 */
            this.percent_ignore_mob_def_rate += buff.intValue();

        }
        /* 6387 */
        buff = chra.getBuffedValue(MapleBuffStat.爆击概率增加);
        /* 6388 */
        if (buff != null) {
            /* 6389 */
            this.passive_sharpeye_rate = (short) (this.passive_sharpeye_rate + buff.intValue());

        }
        /* 6391 */
        buff = chra.getBuffedValue(MapleBuffStat.最小爆击伤害);
        /* 6392 */
        if (buff != null) {
            /* 6393 */
            this.passive_sharpeye_max_percent = (short) (this.passive_sharpeye_max_percent + buff.intValue());

        }
        /* 6395 */
        effect = chra.getStatForBuff(MapleBuffStat.卡牌审判);
        /* 6396 */
        buff = chra.getBuffedValue(MapleBuffStat.卡牌审判);
        /* 6397 */
        if (effect != null && buff != null) {
            /* 6398 */
            switch (buff.intValue()) {

                case 1:
                    /* 6400 */
                    this.passive_sharpeye_rate = (short) (this.passive_sharpeye_rate + effect.getV());

                    break;

                case 2:
                    /* 6403 */
                    this.dropBuff *= (effect.getW() + 100.0D) / 100.0D;

                    break;

                case 3:
                    /* 6406 */
                    this.ASR += effect.getX();
                    /* 6407 */
                    this.TER += effect.getY();

                    break;

            }

        }
        /* 6411 */
        buff = chra.getBuffedValue(MapleBuffStat.提升伤害百分比);
        /* 6412 */
        if (buff != null) {
            /* 6413 */
            this.percent_damage_rate += buff.intValue();
            /* 6414 */
            this.percent_boss_damage_rate += buff.intValue();

        }

        /* 6417 */
        buff = chra.getBuffedValue(MapleBuffStat.黑暗高潮);
        /* 6418 */
        if (buff != null) {
            /* 6419 */
            this.percent_damage += buff.intValue();

        }
        /* 6421 */
        effect = chra.getStatForBuff(MapleBuffStat.生命潮汐);
        /* 6422 */
        if (effect != null) {
            /* 6423 */
            this.passive_sharpeye_rate = (short) (this.passive_sharpeye_rate + effect.getProp());

        }



        /* 6428 */
        effect = chra.getStatForBuff(MapleBuffStat.黑暗祝福);
        /* 6429 */
        if (effect != null) {
            /* 6430 */
            buff = chra.getBuffedValue(MapleBuffStat.黑暗祝福);
            /* 6431 */
            Skill bx = SkillFactory.getSkill(27100003);
            /* 6432 */
            int bof = chra.getTotalSkillLevel(bx);
            /* 6433 */
            if (bof > 0 && bx != null) {
                /* 6434 */
                MapleStatEffect skilleff = bx.getEffect(bof);
                /* 6435 */
                if (buff.intValue() == 1) {
                    /* 6436 */
                    this.magic += skilleff.getU();
                    /* 6437 */
                } else if (buff.intValue() == 2) {
                    /* 6438 */
                    this.magic += skilleff.getV();
                    /* 6439 */
                } else if (buff.intValue() == 3) {
                    /* 6440 */
                    this.magic += skilleff.getY();

                }

            }

        }
        /* 6444 */
        effect = chra.getStatForBuff(MapleBuffStat.模式转换);
        /* 6445 */
        if (effect != null) {
            /* 6446 */
            if (effect.getSourceid() == 60001216) {
                /* 6447 */
                this.percent_wdef += effect.getWdefX();
                /* 6448 */
                this.percent_mdef += effect.getMdefX();
                /* 6449 */
                this.accuracy += effect.getAccX();
                /* 6450 */
                this.percent_hp += effect.getPercentHP();
                /* 6451 */
                int[] skills = {61100005, 61110005, 61120010};
                /* 6452 */
                for (int i : skills) {
                    /* 6453 */
                    Skill bx = SkillFactory.getSkill(i);
                    /* 6454 */
                    int bof = chra.getTotalSkillLevel(bx);
                    /* 6455 */
                    if (bof > 0 && bx != null) {
                        /* 6456 */
                        MapleStatEffect skilleff = bx.getEffect(bof);
                        /* 6457 */
                        this.percent_wdef += skilleff.getWdefX();
                        /* 6458 */
                        this.percent_mdef += skilleff.getMdefX();
                        /* 6459 */
                        this.accuracy += skilleff.getAccX();
                        /* 6460 */
                        this.percent_hp += skilleff.getPercentHP();

                    }

                }
                /* 6463 */
            } else if (effect.getSourceid() == 60001217) {
                /* 6464 */
                this.watk += effect.getAttackX();
                /* 6465 */
                this.percent_boss_damage_rate += effect.getBossDamage();
                /* 6466 */
                this.passive_sharpeye_rate = (short) (this.passive_sharpeye_rate + effect.getCritical());
                /* 6467 */
                int[] skills = {61100008, 61110010, 61120013};
                /* 6468 */
                for (int i : skills) {
                    /* 6469 */
                    Skill bx = SkillFactory.getSkill(i);
                    /* 6470 */
                    int bof = chra.getTotalSkillLevel(bx);
                    /* 6471 */
                    if (bof > 0 && bx != null) {
                        /* 6472 */
                        MapleStatEffect skilleff = bx.getEffect(bof);
                        /* 6473 */
                        this.watk += skilleff.getAttackX();
                        /* 6474 */
                        this.percent_boss_damage_rate += skilleff.getBossDamage();
                        /* 6475 */
                        this.passive_sharpeye_rate = (short) (this.passive_sharpeye_rate + skilleff.getCritical());

                    }

                }

            }

        }

        /* 6481 */
        buff = chra.getBuffedValue(MapleBuffStat.灵魂凝视);
        /* 6482 */
        if (buff != null) {
            /* 6483 */
            this.percent_damage_rate += buff.intValue();
            /* 6484 */
            this.percent_boss_damage_rate += buff.intValue();

        }
        /* 6486 */
        buff = chra.getBuffedValue(MapleBuffStat.增加伤害最大值);
        /* 6487 */
        if (buff != null) {
            /* 6488 */
            this.incMaxDamage += buff.intValue();

        }
        /* 6490 */
        buff = chra.getBuffedValue(MapleBuffStat.提升伤害百分比);
        /* 6491 */
        if (buff != null) {
            /* 6492 */
            this.percent_damage += buff.intValue();

        }

        /* 6495 */
        buff = chra.getBuffedValue(MapleBuffStat.暴击概率);
        /* 6496 */
        if (buff != null) {
            /* 6497 */
            this.passive_sharpeye_rate = (short) (this.passive_sharpeye_rate + buff.intValue());

        }
        /* 6499 */
        buff = chra.getBuffedValue(MapleBuffStat.恶魔超越);
        /* 6500 */
        if (buff != null) {
            /* 6501 */
            this.hpRecover_Percent -= buff.intValue() / 2;
            /* 6502 */
            if (this.hpRecover_Percent < 0) {
                /* 6503 */
                this.hpRecover_Percent = 0;

            }

        }

        /* 6507 */
        buff = chra.getBuffedValue(MapleBuffStat.交叉锁链);
        /* 6508 */
        if (buff != null) {
            /* 6509 */
            this.percent_damage += buff.intValue();

        }
        /* 6511 */
        effect = chra.getStatForBuff(MapleBuffStat.元素爆破);
        /* 6512 */
        if (effect != null && effect.getSourceid() == 1221009) {
            /* 6513 */
            this.percent_damage += effect.getDAMRate();
            /* 6514 */
            this.passive_sharpeye_rate = (short) (this.passive_sharpeye_rate + effect.getCritical());
            /* 6515 */
            this.percent_ignore_mob_def_rate += effect.getIgnoreMob();

        }
        /* 6517 */
        if ((effect = chra.getStatForBuff(MapleBuffStat.隐形剑)) != null) {
            /* 6518 */
            this.finalSkillID = effect.getSourceid();

        }

        /* 6521 */
        effect = chra.getStatForBuff(MapleBuffStat.极限射箭);
        /* 6522 */
        if (effect != null) {
            /* 6523 */
            switch (effect.getSourceid()) {

                case 3111011:
                    /* 6525 */
                    this.watk += effect.getAttackX();

                    break;

            }





        }
        /* 6533 */
        buff = chra.getBuffedValue(MapleBuffStat.疾驰速度);
        /* 6534 */
        if (buff != null) {
            /* 6535 */
            this.speed += buff.intValue();

        }
        /* 6537 */
        buff = chra.getBuffedValue(MapleBuffStat.疾驰跳跃);
        /* 6538 */
        if (buff != null) {
            /* 6539 */
            this.jump += buff.intValue();

        }

        /* 6542 */
        if (this.speed > 140) {
            /* 6543 */
            this.speed = 140;

        }
        /* 6545 */
        if (this.jump > 123) {
            /* 6546 */
            this.jump = 123;

        }
        /* 6548 */
        buff = chra.getBuffedValue(MapleBuffStat.骑兽技能);
        /* 6549 */
        if (buff != null) {
            /* 6550 */
            this.jump = 120;
            /* 6551 */
            switch (buff.intValue()) {

                case 1:
                    /* 6553 */
                    this.speed = 150;

                    break;

                case 2:
                    /* 6556 */
                    this.speed = 170;

                    break;

                case 3:
                    /* 6559 */
                    this.speed = 180;

                    break;

                default:
                    /* 6562 */
                    this.speed = 200;

                    break;

            }

        }
        /* 6566 */
        buff = chra.getBuffedValue(MapleBuffStat.超压魔力);
        /* 6567 */
        if (buff != null) {
            /* 6568 */
            this.mpconMaxPercent += buff.intValue();

        }

    }



    public boolean checkEquipLevels(MapleCharacter chr, long gain) {
        /* 6573 */
        boolean changed = false;
        /* 6574 */
        MapleItemInformationProvider ii = MapleItemInformationProvider.getInstance();
        /* 6575 */
        List<Equip> all = new ArrayList<>(this.equipLevelHandling);
        /* 6576 */
        for (Equip eq : all) {
            /* 6577 */
            int lvlz = eq.getEquipLevel();
            /* 6578 */
            eq.setItemEXP(Math.min(eq.getItemEXP() + gain, Long.MAX_VALUE));

            /* 6580 */
            if (eq.getEquipLevel() > lvlz) {
                /* 6581 */
                for (int i = eq.getEquipLevel() - lvlz; i > 0; i--) {

                    /* 6583 */
                    Map<String, Map<String, Integer>> inc = ii.getEquipIncrements(eq.getItemId());
                    /* 6584 */
                    int extra = eq.getYggdrasilWisdom();
                    /* 6585 */
                    if (extra == 1) {
                        /* 6586 */
                        ((Map<String, Integer>) inc.get(String.valueOf(lvlz + i - 1))).put("incSTRMin", Integer.valueOf(1));
                        /* 6587 */
                        ((Map<String, Integer>) inc.get(String.valueOf(lvlz + i - 1))).put("incSTRMax", Integer.valueOf(3));
                        /* 6588 */
                    } else if (extra == 2) {
                        /* 6589 */
                        ((Map<String, Integer>) inc.get(String.valueOf(lvlz + i - 1))).put("incDEXMin", Integer.valueOf(1));
                        /* 6590 */
                        ((Map<String, Integer>) inc.get(String.valueOf(lvlz + i - 1))).put("incDEXMax", Integer.valueOf(3));
                        /* 6591 */
                    } else if (extra == 3) {
                        /* 6592 */
                        ((Map<String, Integer>) inc.get(String.valueOf(lvlz + i - 1))).put("incINTMin", Integer.valueOf(1));
                        /* 6593 */
                        ((Map<String, Integer>) inc.get(String.valueOf(lvlz + i - 1))).put("incINTMax", Integer.valueOf(3));
                        /* 6594 */
                    } else if (extra == 4) {
                        /* 6595 */
                        ((Map<String, Integer>) inc.get(String.valueOf(lvlz + i - 1))).put("incLUKMin", Integer.valueOf(1));
                        /* 6596 */
                        ((Map<String, Integer>) inc.get(String.valueOf(lvlz + i - 1))).put("incLUKMax", Integer.valueOf(3));

                    }
                    /* 6598 */
                    if (inc != null && inc.containsKey(String.valueOf(lvlz + i - 1))) {
                        /* 6599 */
                        eq = ii.levelUpEquip(eq, inc.get(String.valueOf(lvlz + i - 1)));

                    }

                    /* 6602 */
                    if (GameConstants.getStatFromWeapon(eq.getItemId()) == null && GameConstants.getMaxLevel(eq.getItemId()) < lvlz + i && Math.random() < 0.1D && eq.getIncSkill() <= 0 && ii.getEquipSkills(eq.getItemId()) != null) {
                        /* 6603 */
                        for (Iterator<Integer> iterator = ii.getEquipSkills(eq.getItemId()).iterator(); iterator.hasNext(); ) {
                            int zzz = ((Integer) iterator.next()).intValue();
                            /* 6604 */
                            Skill skil = SkillFactory.getSkill(zzz);
                            /* 6605 */
                            if (skil != null && skil.canBeLearnedBy(chr.getJob())) {
                                /* 6606 */
                                eq.setIncSkill(skil.getId());
                                /* 6607 */
                                chr.dropMessage(5, "武器：" + skil.getName() + " 已获得新的等级提升！");

                            }
                        }


                    }

                }
                /* 6612 */
                changed = true;

            }
            /* 6614 */
            chr.forceUpdateItem(eq.copy());

        }
        /* 6616 */
        if (changed) {
            /* 6617 */
            chr.equipChanged();
            /* 6618 */
            chr.send(EffectPacket.showItemLevelupEffect());
            /* 6619 */
            chr.getMap().broadcastMessage(chr, EffectPacket.showForeignItemLevelupEffect(chr.getId()), false);

        }
        /* 6621 */
        return changed;

    }



    public boolean checkEquipDurabilitys(MapleCharacter chr, int gain) {
        /* 6625 */
        return checkEquipDurabilitys(chr, gain, false);

    }



    public boolean checkEquipDurabilitys(MapleCharacter chr, int gain, boolean aboveZero) {
        /* 6629 */
        if (chr.inPVP()) {
            /* 6630 */
            return true;

        }
        /* 6632 */
        List<Equip> all = new ArrayList<>(this.durabilityHandling);
        /* 6633 */
        for (Equip item : all) {
            /* 6634 */
            if (item != null && ((item.getPosition() >= 0)) == aboveZero) {
                /* 6635 */
                item.setDurability(item.getDurability() + gain);
                /* 6636 */
                if (item.getDurability() < 0) {
                    /* 6637 */
                    item.setDurability(0);

                }

            }

        }
        /* 6641 */
        for (Equip eqq : all) {
            /* 6642 */
            if (eqq != null && eqq.getDurability() == 0 && eqq.getPosition() < 0) {
                /* 6643 */
                if (chr.getInventory(MapleInventoryType.EQUIP).isFull()) {
                    /* 6644 */
                    chr.send(InventoryPacket.getInventoryFull());
                    /* 6645 */
                    chr.send(InventoryPacket.getShowInventoryFull());
                    /* 6646 */
                    return false;

                }
                /* 6648 */
                this.durabilityHandling.remove(eqq);
                /* 6649 */
                short pos = chr.getInventory(MapleInventoryType.EQUIP).getNextFreeSlot();
                /* 6650 */
                MapleInventoryManipulator.unequip(chr.getClient(), eqq.getPosition(), pos);
                continue;
                /* 6651 */
            }
            if (eqq != null) {
                /* 6652 */
                chr.forceUpdateItem(eqq.copy());

            }

        }
        /* 6655 */
        return true;

    }



    public void checkEquipSealed(MapleCharacter chr, long gain) {
        /* 6659 */
        List<Equip> all = new ArrayList<>(this.sealedEquipHandling);
        /* 6660 */
        List<ModifyInventory> mods = new ArrayList<>();
        /* 6661 */
        for (Equip eqq : all) {
            /* 6662 */
            if (eqq != null && !GameConstants.canSealedLevelUp(eqq.getItemId(), eqq.getSealedLevel(), eqq.getSealedExp())) {
                /* 6663 */
                eqq.gainSealedExp(gain * ((Integer) GameConstants.sealedExpRate.get(Math.max(0, eqq.getSealedLevel() - 1))).intValue());
                /* 6664 */
                mods.add(new ModifyInventory(4, (Item) eqq));

            }

        }
        /* 6667 */
        chr.send(InventoryPacket.modifyInventory(true, mods, chr));

    }



    public void handleProfessionTool(MapleCharacter chra) {
        /* 6671 */
        if (chra.getProfessionLevel(92000000) > 0 || chra.getProfessionLevel(92010000) > 0)
            /* 6672 */ for (Item item : chra.getInventory(MapleInventoryType.EQUIP).newList()) {
            /* 6673 */
            Equip equip = (Equip) item;
            /* 6674 */
            if ((equip.getDurability() != 0 && equip.getItemId() / 10000 == 150 && chra.getProfessionLevel(92000000) > 0) || (equip.getItemId() / 10000 == 151 && chra.getProfessionLevel(92010000) > 0)) {
                /* 6675 */
                if (equip.getDurability() > 0) {
                    /* 6676 */
                    this.durabilityHandling.add(equip);

                }
                /* 6678 */
                this.harvestingTool = equip.getPosition();

                break;

            }

        }

    }



    private void CalcPassive_Mastery(MapleCharacter player) {

        int skil;
        /* 6686 */
        if (player.getInventory(MapleInventoryType.EQUIPPED).getItem((short) -11) == null) {
            /* 6687 */
            this.passive_mastery = 0;


            return;

        }
        /* 6691 */
        MapleWeaponType weaponType = ItemConstants.getWeaponType(player.getInventory(MapleInventoryType.EQUIPPED).getItem((short) -11).getItemId());
        /* 6692 */
        boolean acc = true;

        /* 6694 */
        switch (weaponType) {

            case 弓:
                /* 6696 */
                skil = JobConstants.is风灵使者(player.getJob()) ? 13100025 : 3100000;

                break;

            case 拳套:
                /* 6699 */
                skil = (player.getJob() >= 410 && player.getJob() <= 412) ? 4100000 : 14100023;

                break;

            case 手杖:
                /* 6702 */
                skil = (player.getTotalSkillLevel(24120006) > 0) ? 24120006 : 24100004;

                break;

            case 手持火炮:
                /* 6705 */
                skil = 5300005;

                break;

            case 双刀副手:

            case 短刀:
                /* 6709 */
                skil = (player.getJob() >= 430 && player.getJob() <= 434) ? 4300000 : 4200000;

                break;

            case 弩:
                /* 6712 */
                skil = JobConstants.is反抗者(player.getJob()) ? 33100000 : 3200000;

                break;

            case 单手斧:

            case 单手钝器:
                /* 6716 */
                skil = JobConstants.is恶魔猎手(player.getJob()) ? 31100004 : (JobConstants.is魂骑士(player.getJob()) ? 11100025 : (JobConstants.is米哈尔(player.getJob()) ? 51100001 : ((player.getJob() >= 110 && player.getJob() <= 112) ? 1100000 : 1200000)));

                break;

            case 双手斧:

            case 单手剑:

            case 双手剑:

            case 双手钝器:
                /* 6722 */
                skil = JobConstants.is狂龙战士(player.getJob()) ? 61100006 : (JobConstants.is魂骑士(player.getJob()) ? 11100025 : (JobConstants.is米哈尔(player.getJob()) ? 51100001 : ((player.getJob() >= 110 && player.getJob() <= 112) ? 1100000 : 1200000)));

                break;

            case 矛:
                /* 6725 */
                skil = JobConstants.is战神(player.getJob()) ? 21100000 : 1300000;

                break;

            case 枪:
                /* 6728 */
                skil = 1300000;

                break;

            case 指节:
                /* 6731 */
                skil = JobConstants.is奇袭者(player.getJob()) ? 15100023 : (JobConstants.is隐月(player.getJob()) ? 25100106 : 5100001);

                break;

            case 短枪:
                /* 6734 */
                skil = JobConstants.is反抗者(player.getJob()) ? 35100000 : 5200000;

                break;

            case 双弩枪:
                /* 6737 */
                skil = 23100005;

                break;

            case 短杖:

            case 长杖:
                /* 6741 */
                acc = false;
                /* 6742 */
                skil = JobConstants.is反抗者(player.getJob()) ? 32100006 : ((player.getJob() <= 212) ? 2100006 : ((player.getJob() <= 222) ? 2200006 : ((player.getJob() <= 232) ? 2300006 : ((player.getJob() <= 2000) ? 12100027 : 22110018))));

                break;

            case 双头杖:
                /* 6745 */
                acc = false;
                /* 6746 */
                skil = 27100005;

                break;

            case 灵魂手铳:
                /* 6749 */
                skil = 65100003;

                break;

            case 亡命剑:
                /* 6752 */
                skil = 31200005;

                break;

            case 能量剑:
                /* 6755 */
                skil = 36100006;

                break;

            case 大剑:
                /* 6758 */
                skil = 101000103;

                break;

            case 太刀:
                /* 6761 */
                skil = 101000203;

                break;

            case 驯兽魔法棒:
                /* 6764 */
                acc = false;
                /* 6765 */
                skil = 110000515;

                break;

            case ESP限制器:
                /* 6768 */
                acc = false;
                /* 6769 */
                skil = 142100006;

                break;

            case 机甲手枪:
                /* 6772 */
                skil = 37100004;

                break;

            case 锁链:
                /* 6775 */
                skil = 64100005;

                break;

            case 魔力手套:
                /* 6778 */
                skil = 152000006;

                break;

            case 调谐器:
                /* 6781 */
                acc = false;
                /* 6782 */
                skil = 151100014;

                break;

            default:
                /* 6785 */
                this.passive_mastery = 0;

                return;

        }
        /* 6788 */
        if (player.getSkillLevel(skil) <= 0) {
            /* 6789 */
            this.passive_mastery = 0;


            return;

        }
        /* 6793 */
        MapleStatEffect eff = SkillFactory.getSkill(skil).getEffect(player.getTotalSkillLevel(skil));
        /* 6794 */
        if (acc) {
            /* 6795 */
            this.accuracy += eff.getX();

        } else {
            /* 6797 */
            this.magic += eff.getX();

        }

        /* 6800 */
        this.passive_sharpeye_rate = (short) (this.passive_sharpeye_rate + eff.getCritical());
        /* 6801 */
        this.passive_mastery = (byte) eff.getMastery();
        /* 6802 */
        this.trueMastery += eff.getMastery() + weaponType.getBaseMastery();
        /* 6803 */
        if (player.getJob() == 132) {
            /* 6804 */
            Skill bx = SkillFactory.getSkill(1320018);
            /* 6805 */
            int bof = player.getTotalSkillLevel(bx);
            /* 6806 */
            if (bof > 0 && bx != null) {
                /* 6807 */
                MapleStatEffect eff2 = bx.getEffect(bof);
                /* 6808 */
                this.passive_mastery = (byte) eff2.getMastery();
                /* 6809 */
                this.watk += eff2.getAttackX();
                /* 6810 */
                this.trueMastery -= eff.getMastery();
                /* 6811 */
                this.trueMastery += eff2.getMastery();
                /* 6812 */
                this.passive_sharpeye_min_percent = (short) (this.passive_sharpeye_min_percent + eff.getCriticalMin());

            }
            /* 6814 */
        } else if (player.getJob() == 231 || player.getJob() == 232) {
            /* 6815 */
            Skill bx = SkillFactory.getSkill(2310008);
            /* 6816 */
            int bof = player.getTotalSkillLevel(bx);
            /* 6817 */
            if (bof > 0 && bx != null) {
                /* 6818 */
                MapleStatEffect eff2 = bx.getEffect(bof);
                /* 6819 */
                this.passive_mastery = (byte) eff2.getMastery();
                /* 6820 */
                this.trueMastery -= eff.getMastery();
                /* 6821 */
                this.trueMastery += eff2.getMastery();
                /* 6822 */
                this.passive_sharpeye_rate = (short) (this.passive_sharpeye_rate + eff2.getCritical());
                /* 6823 */
                this.percent_acc += eff2.getArRate();

            }
            /* 6825 */
        } else if (player.getJob() == 312) {
            /* 6826 */
            Skill bx = SkillFactory.getSkill(3120005);
            /* 6827 */
            int bof = player.getTotalSkillLevel(bx);
            /* 6828 */
            if (bof > 0 && bx != null) {
                /* 6829 */
                MapleStatEffect eff2 = bx.getEffect(bof);
                /* 6830 */
                this.passive_mastery = (byte) eff2.getMastery();
                /* 6831 */
                this.watk += eff2.getX();
                /* 6832 */
                this.trueMastery -= eff.getMastery();
                /* 6833 */
                this.trueMastery += eff2.getMastery();
                /* 6834 */
                this.passive_sharpeye_min_percent = (short) (this.passive_sharpeye_min_percent + eff.getCriticalMin());

            }
            /* 6836 */
        } else if (player.getJob() == 322) {
            /* 6837 */
            Skill bx = SkillFactory.getSkill(3220004);
            /* 6838 */
            int bof = player.getTotalSkillLevel(bx);
            /* 6839 */
            if (bof > 0 && bx != null) {
                /* 6840 */
                MapleStatEffect eff2 = bx.getEffect(bof);
                /* 6841 */
                this.passive_mastery = (byte) eff2.getMastery();
                /* 6842 */
                this.watk += eff2.getX();
                /* 6843 */
                this.trueMastery -= eff.getMastery();
                /* 6844 */
                this.trueMastery += eff2.getMastery();
                /* 6845 */
                this.passive_sharpeye_min_percent = (short) (this.passive_sharpeye_min_percent + eff.getCriticalMin());

            }
            /* 6847 */
        } else if (player.getJob() == 412) {
            /* 6848 */
            Skill bx = SkillFactory.getSkill(4120012);
            /* 6849 */
            int bof = player.getTotalSkillLevel(bx);
            /* 6850 */
            if (bof > 0 && bx != null) {
                /* 6851 */
                MapleStatEffect eff2 = bx.getEffect(bof);
                /* 6852 */
                this.passive_mastery = (byte) eff2.getMastery();
                /* 6853 */
                this.accuracy += eff2.getPercentAcc();
                /* 6854 */
                this.dodgeChance += eff2.getPercentAvoid();
                /* 6855 */
                this.watk += eff2.getX();
                /* 6856 */
                this.trueMastery -= eff.getMastery();
                /* 6857 */
                this.trueMastery += eff2.getMastery();

            }
            /* 6859 */
        } else if (player.getJob() == 422) {
            /* 6860 */
            Skill bx = SkillFactory.getSkill(4220012);
            /* 6861 */
            int bof = player.getTotalSkillLevel(bx);
            /* 6862 */
            if (bof > 0 && bx != null) {
                /* 6863 */
                MapleStatEffect eff2 = bx.getEffect(bof);
                /* 6864 */
                this.passive_mastery = (byte) eff2.getMastery();
                /* 6865 */
                this.accuracy += eff2.getPercentAcc();
                /* 6866 */
                this.dodgeChance += eff2.getPercentAvoid();
                /* 6867 */
                this.watk += eff2.getX();
                /* 6868 */
                this.trueMastery -= eff.getMastery();
                /* 6869 */
                this.trueMastery += eff2.getMastery();

            }
            /* 6871 */
        } else if (player.getJob() == 434) {
            /* 6872 */
            Skill bx = SkillFactory.getSkill(4340013);
            /* 6873 */
            int bof = player.getTotalSkillLevel(bx);
            /* 6874 */
            if (bof > 0 && bx != null) {
                /* 6875 */
                MapleStatEffect eff2 = bx.getEffect(bof);
                /* 6876 */
                this.passive_mastery = (byte) eff2.getMastery();
                /* 6877 */
                this.accuracy += eff2.getPercentAcc();
                /* 6878 */
                this.dodgeChance += eff2.getPercentAvoid();
                /* 6879 */
                this.watk += eff2.getX();
                /* 6880 */
                this.trueMastery -= eff.getMastery();
                /* 6881 */
                this.trueMastery += eff2.getMastery();

            }
            /* 6883 */
        } else if (player.getJob() == 512) {
            /* 6884 */
            Skill bx = SkillFactory.getSkill(5121015);
            /* 6885 */
            int bof = player.getTotalSkillLevel(bx);
            /* 6886 */
            if (bof > 0 && bx != null) {
                /* 6887 */
                MapleStatEffect eff2 = bx.getEffect(bof);
                /* 6888 */
                this.passive_mastery = (byte) eff2.getMastery();
                /* 6889 */
                this.trueMastery -= eff.getMastery();
                /* 6890 */
                this.trueMastery += eff2.getMastery();

            }
            /* 6892 */
        } else if (player.getJob() == 522) {
            /* 6893 */
            Skill bx = SkillFactory.getSkill(5220020);
            /* 6894 */
            int bof = player.getTotalSkillLevel(bx);
            /* 6895 */
            if (bof > 0 && bx != null) {
                /* 6896 */
                MapleStatEffect eff2 = bx.getEffect(bof);
                /* 6897 */
                this.passive_mastery = (byte) eff2.getMastery();
                /* 6898 */
                this.trueMastery -= eff.getMastery();
                /* 6899 */
                this.trueMastery += eff2.getMastery();

            }
            /* 6901 */
        } else if (player.getJob() == 1112) {
            /* 6902 */
            Skill bx = SkillFactory.getSkill(11120007);
            /* 6903 */
            int bof = player.getTotalSkillLevel(bx);
            /* 6904 */
            if (bof > 0 && bx != null) {
                /* 6905 */
                MapleStatEffect eff2 = bx.getEffect(bof);
                /* 6906 */
                this.passive_mastery = (byte) eff2.getMastery();
                /* 6907 */
                this.trueMastery -= eff.getMastery();
                /* 6908 */
                this.trueMastery += eff2.getMastery();
                /* 6909 */
                this.watk += eff2.getX();
                /* 6910 */
                this.passive_sharpeye_min_percent = (short) (this.passive_sharpeye_min_percent + eff2.getCriticalMin());

            }
            /* 6912 */
        } else if (player.getJob() == 1212) {
            /* 6913 */
            Skill bx = SkillFactory.getSkill(12120009);
            /* 6914 */
            int bof = player.getTotalSkillLevel(bx);
            /* 6915 */
            if (bof > 0 && bx != null) {
                /* 6916 */
                MapleStatEffect eff2 = bx.getEffect(bof);
                /* 6917 */
                this.passive_mastery = (byte) eff2.getMastery();
                /* 6918 */
                this.trueMastery -= eff.getMastery();
                /* 6919 */
                this.trueMastery += eff2.getMastery();
                /* 6920 */
                this.magic += eff2.getX();
                /* 6921 */
                this.passive_sharpeye_min_percent = (short) (this.passive_sharpeye_min_percent + eff2.getCriticalMin());

            }
            /* 6923 */
        } else if (player.getJob() == 1312) {
            /* 6924 */
            Skill bx = SkillFactory.getSkill(13120006);
            /* 6925 */
            int bof = player.getTotalSkillLevel(bx);
            /* 6926 */
            if (bof > 0 && bx != null) {
                /* 6927 */
                MapleStatEffect eff2 = bx.getEffect(bof);
                /* 6928 */
                this.passive_mastery = (byte) eff2.getMastery();
                /* 6929 */
                this.trueMastery -= eff.getMastery();
                /* 6930 */
                this.trueMastery += eff2.getMastery();
                /* 6931 */
                this.watk += eff2.getX();
                /* 6932 */
                this.passive_sharpeye_min_percent = (short) (this.passive_sharpeye_min_percent + eff2.getCriticalMin());

            }
            /* 6934 */
        } else if (player.getJob() == 1412) {
            /* 6935 */
            Skill bx = SkillFactory.getSkill(14120005);
            /* 6936 */
            int bof = player.getTotalSkillLevel(bx);
            /* 6937 */
            if (bof > 0 && bx != null) {
                /* 6938 */
                MapleStatEffect eff2 = bx.getEffect(bof);
                /* 6939 */
                this.passive_mastery = (byte) eff2.getMastery();
                /* 6940 */
                this.trueMastery -= eff.getMastery();
                /* 6941 */
                this.trueMastery += eff2.getMastery();
                /* 6942 */
                this.watk += eff2.getX();
                /* 6943 */
                this.passive_sharpeye_min_percent = (short) (this.passive_sharpeye_min_percent + eff2.getCriticalMin());

            }
            /* 6945 */
        } else if (player.getJob() == 1512) {
            /* 6946 */
            Skill bx = SkillFactory.getSkill(15120006);
            /* 6947 */
            int bof = player.getTotalSkillLevel(bx);
            /* 6948 */
            if (bof > 0 && bx != null) {
                /* 6949 */
                MapleStatEffect eff2 = bx.getEffect(bof);
                /* 6950 */
                this.passive_mastery = (byte) eff2.getMastery();
                /* 6951 */
                this.trueMastery -= eff.getMastery();
                /* 6952 */
                this.trueMastery += eff2.getMastery();
                /* 6953 */
                this.watk += eff2.getX();
                /* 6954 */
                this.passive_sharpeye_min_percent = (short) (this.passive_sharpeye_min_percent + eff2.getCriticalMin());

            }
            /* 6956 */
        } else if (player.getJob() == 2112) {
            /* 6957 */
            Skill bx = SkillFactory.getSkill(21120001);
            /* 6958 */
            int bof = player.getTotalSkillLevel(bx);
            /* 6959 */
            if (bof > 0 && bx != null) {
                /* 6960 */
                MapleStatEffect eff2 = bx.getEffect(bof);
                /* 6961 */
                this.passive_mastery = (byte) eff2.getMastery();
                /* 6962 */
                this.trueMastery -= eff.getMastery();
                /* 6963 */
                this.trueMastery += eff2.getMastery();
                /* 6964 */
                this.watk += eff2.getX();
                /* 6965 */
                this.passive_sharpeye_min_percent = (short) (this.passive_sharpeye_min_percent + eff2.getCriticalMin());

            }
            /* 6967 */
        } else if (player.getJob() == 2512) {
            /* 6968 */
            Skill bx = SkillFactory.getSkill(25120113);
            /* 6969 */
            int bof = player.getTotalSkillLevel(bx);
            /* 6970 */
            if (bof > 0 && bx != null) {
                /* 6971 */
                MapleStatEffect eff2 = bx.getEffect(bof);
                /* 6972 */
                this.passive_mastery = (byte) eff2.getMastery();
                /* 6973 */
                this.trueMastery -= eff.getMastery();
                /* 6974 */
                this.trueMastery += eff2.getMastery();
                /* 6975 */
                this.passive_sharpeye_min_percent = (short) (this.passive_sharpeye_min_percent + eff2.getCriticalMin());

            }
            /* 6977 */
        } else if (player.getJob() == 2712) {
            /* 6978 */
            Skill bx = SkillFactory.getSkill(27120007);
            /* 6979 */
            int bof = player.getTotalSkillLevel(bx);
            /* 6980 */
            if (bof > 0 && bx != null) {
                /* 6981 */
                MapleStatEffect eff2 = bx.getEffect(bof);
                /* 6982 */
                this.passive_mastery = (byte) eff2.getMastery();
                /* 6983 */
                this.trueMastery -= eff.getMastery();
                /* 6984 */
                this.trueMastery += eff2.getMastery();
                /* 6985 */
                this.magic += eff2.getX();
                /* 6986 */
                this.passive_sharpeye_min_percent = (short) (this.passive_sharpeye_min_percent + eff2.getCriticalMin());

            }
            /* 6988 */
        } else if (player.getJob() == 3122) {
            /* 6989 */
            Skill bx = SkillFactory.getSkill(31220006);
            /* 6990 */
            int bof = player.getTotalSkillLevel(bx);
            /* 6991 */
            if (bof > 0 && bx != null) {
                /* 6992 */
                MapleStatEffect eff2 = bx.getEffect(bof);
                /* 6993 */
                this.passive_mastery = (byte) eff2.getMastery();
                /* 6994 */
                this.trueMastery -= eff.getMastery();
                /* 6995 */
                this.trueMastery += eff2.getMastery();
                /* 6996 */
                this.watk += eff2.getAttackX();
                /* 6997 */
                this.passive_sharpeye_min_percent = (short) (this.passive_sharpeye_min_percent + eff2.getCriticalMin());

            }
            /* 6999 */
        } else if (player.getJob() == 3612) {
            /* 7000 */
            Skill bx = SkillFactory.getSkill(36120006);
            /* 7001 */
            int bof = player.getTotalSkillLevel(bx);
            /* 7002 */
            if (bof > 0 && bx != null) {
                /* 7003 */
                MapleStatEffect eff2 = bx.getEffect(bof);
                /* 7004 */
                this.passive_mastery = (byte) eff2.getMastery();
                /* 7005 */
                this.trueMastery -= eff.getMastery();
                /* 7006 */
                this.trueMastery += eff2.getMastery();
                /* 7007 */
                this.watk += eff2.getAttackX();
                /* 7008 */
                this.passive_sharpeye_min_percent = (short) (this.passive_sharpeye_min_percent + eff2.getCriticalMin());

            }
            /* 7010 */
        } else if (player.getJob() == 5112) {
            /* 7011 */
            Skill bx = SkillFactory.getSkill(51120001);
            /* 7012 */
            int bof = player.getTotalSkillLevel(bx);
            /* 7013 */
            if (bof > 0 && bx != null) {
                /* 7014 */
                MapleStatEffect eff2 = bx.getEffect(bof);
                /* 7015 */
                this.passive_mastery = (byte) eff2.getMastery();
                /* 7016 */
                this.watk += eff2.getAttackX();
                /* 7017 */
                this.trueMastery -= eff.getMastery();
                /* 7018 */
                this.trueMastery += eff2.getMastery();

            }
            /* 7020 */
        } else if (player.getJob() == 6112) {
            /* 7021 */
            Skill bx = SkillFactory.getSkill(61120012);
            /* 7022 */
            int bof = player.getTotalSkillLevel(bx);
            /* 7023 */
            if (bof > 0 && bx != null) {
                /* 7024 */
                MapleStatEffect eff2 = bx.getEffect(bof);
                /* 7025 */
                this.passive_mastery = (byte) eff2.getMastery();
                /* 7026 */
                this.trueMastery -= eff.getMastery();
                /* 7027 */
                this.trueMastery += eff2.getMastery();
                /* 7028 */
                this.watk += eff2.getAttackX();
                /* 7029 */
                this.passive_sharpeye_min_percent = (short) (this.passive_sharpeye_min_percent + eff2.getCriticalMin());

            }
            /* 7031 */
        } else if (player.getJob() == 6512) {
            /* 7032 */
            Skill bx = SkillFactory.getSkill(65120005);
            /* 7033 */
            int bof = player.getTotalSkillLevel(bx);
            /* 7034 */
            if (bof > 0 && bx != null) {
                /* 7035 */
                MapleStatEffect eff2 = bx.getEffect(bof);
                /* 7036 */
                this.passive_mastery = (byte) eff2.getMastery();
                /* 7037 */
                this.trueMastery -= eff.getMastery();
                /* 7038 */
                this.trueMastery += eff2.getMastery();
                /* 7039 */
                this.watk += eff2.getAttackX();
                /* 7040 */
                this.passive_sharpeye_rate = (short) (this.passive_sharpeye_rate + eff2.getCritical());
                /* 7041 */
                this.passive_sharpeye_min_percent = (short) (this.passive_sharpeye_min_percent + eff2.getCriticalMin());

            }

        }

    }



    private void calculateFame(MapleCharacter player) {
        /* 7047 */
        player.getTrait(MapleTraitType.charm).addLocalExp(player.getFame());
        /* 7048 */
        for (MapleTraitType t : MapleTraitType.values()) {
            /* 7049 */
            player.getTrait(t).recalcLevel();

        }

    }



    private void CalcPassive_SharpEye(MapleCharacter player) {

        Skill critSkill;

        int critlevel;
        /* 7056 */
        if (JobConstants.is反抗者(player.getJob())) {
            /* 7057 */
            Skill skill = SkillFactory.getSkill(30000022);
            /* 7058 */
            int i = player.getTotalSkillLevel(skill);
            /* 7059 */
            if (i > 0) {
                /* 7060 */
                this.passive_sharpeye_rate = (short) (this.passive_sharpeye_rate + skill.getEffect(i).getProp());
                /* 7061 */
                this.passive_sharpeye_min_percent = (short) (this.passive_sharpeye_min_percent + skill.getEffect(i).getCriticalMin());

            }
            /* 7063 */
            skill = SkillFactory.getSkill(30010022);
            /* 7064 */
            i = player.getTotalSkillLevel(skill);
            /* 7065 */
            if (i > 0) {
                /* 7066 */
                this.passive_sharpeye_rate = (short) (this.passive_sharpeye_rate + skill.getEffect(i).getProp());
                /* 7067 */
                this.passive_sharpeye_min_percent = (short) (this.passive_sharpeye_min_percent + skill.getEffect(i).getCriticalMin());

            }

        }
        /* 7070 */
        switch (player.getJob()) {

            case 410:

            case 411:

            case 412:
                /* 7074 */
                critSkill = SkillFactory.getSkill(4100001);
                /* 7075 */
                critlevel = player.getTotalSkillLevel(critSkill);
                /* 7076 */
                if (critlevel > 0) {
                    /* 7077 */
                    this.passive_sharpeye_rate = (short) (this.passive_sharpeye_rate + (short) critSkill.getEffect(critlevel).getProp());
                    /* 7078 */
                    this.passive_sharpeye_min_percent = (short) (this.passive_sharpeye_min_percent + critSkill.getEffect(critlevel).getCriticalMin());

                }

                break;


            case 1410:

            case 1411:

            case 1412:
                /* 7085 */
                critSkill = SkillFactory.getSkill(14100024);
                /* 7086 */
                critlevel = player.getTotalSkillLevel(critSkill);
                /* 7087 */
                if (critlevel > 0) {
                    /* 7088 */
                    this.passive_sharpeye_rate = (short) (this.passive_sharpeye_rate + (short) critSkill.getEffect(critlevel).getProp());
                    /* 7089 */
                    this.passive_sharpeye_min_percent = (short) (this.passive_sharpeye_min_percent + critSkill.getEffect(critlevel).getCriticalMin());

                }

                break;


            case 3100:

            case 3110:

            case 3111:

            case 3112:
                /* 7097 */
                critSkill = SkillFactory.getSkill(31100006);
                /* 7098 */
                critlevel = player.getTotalSkillLevel(critSkill);
                /* 7099 */
                if (critlevel > 0) {
                    /* 7100 */
                    this.passive_sharpeye_rate = (short) (this.passive_sharpeye_rate + (short) critSkill.getEffect(critlevel).getCritical());
                    /* 7101 */
                    this.watk += critSkill.getEffect(critlevel).getAttackX();

                }

                break;


            case 2300:

            case 2310:

            case 2311:

            case 2312:
                /* 7109 */
                critSkill = SkillFactory.getSkill(23000003);
                /* 7110 */
                critlevel = player.getTotalSkillLevel(critSkill);
                /* 7111 */
                if (critlevel > 0) {
                    /* 7112 */
                    this.passive_sharpeye_rate = (short) (this.passive_sharpeye_rate + (short) critSkill.getEffect(critlevel).getCritical());
                    /* 7113 */
                    this.passive_sharpeye_min_percent = (short) (this.passive_sharpeye_min_percent + critSkill.getEffect(critlevel).getCriticalMin());

                }

                break;


            case 3210:

            case 3211:

            case 3212:
                /* 7120 */
                critSkill = SkillFactory.getSkill(32100006);
                /* 7121 */
                critlevel = player.getTotalSkillLevel(critSkill);
                /* 7122 */
                if (critlevel > 0) {
                    /* 7123 */
                    this.passive_sharpeye_rate = (short) (this.passive_sharpeye_rate + (short) critSkill.getEffect(critlevel).getCritical());
                    /* 7124 */
                    this.passive_sharpeye_min_percent = (short) (this.passive_sharpeye_min_percent + critSkill.getEffect(critlevel).getCriticalMin());

                }

                break;


            case 434:
                /* 7129 */
                critSkill = SkillFactory.getSkill(4340010);
                /* 7130 */
                critlevel = player.getTotalSkillLevel(critSkill);
                /* 7131 */
                if (critlevel > 0) {
                    /* 7132 */
                    this.passive_sharpeye_rate = (short) (this.passive_sharpeye_rate + (short) critSkill.getEffect(critlevel).getProp());
                    /* 7133 */
                    this.passive_sharpeye_min_percent = (short) (this.passive_sharpeye_min_percent + critSkill.getEffect(critlevel).getCriticalMin());

                }

                break;


            case 211:

            case 212:
                /* 7139 */
                critSkill = SkillFactory.getSkill(2110009);
                /* 7140 */
                critlevel = player.getTotalSkillLevel(critSkill);
                /* 7141 */
                if (critlevel > 0) {
                    /* 7142 */
                    this.passive_sharpeye_rate = (short) (this.passive_sharpeye_rate + (short) critSkill.getEffect(critlevel).getCritical());
                    /* 7143 */
                    this.passive_sharpeye_min_percent = (short) (this.passive_sharpeye_min_percent + critSkill.getEffect(critlevel).getCriticalMin());

                }

                break;


            case 221:

            case 222:
                /* 7149 */
                critSkill = SkillFactory.getSkill(2210009);
                /* 7150 */
                critlevel = player.getTotalSkillLevel(critSkill);
                /* 7151 */
                if (critlevel > 0) {
                    /* 7152 */
                    this.passive_sharpeye_rate = (short) (this.passive_sharpeye_rate + (short) critSkill.getEffect(critlevel).getCritical());
                    /* 7153 */
                    this.passive_sharpeye_min_percent = (short) (this.passive_sharpeye_min_percent + critSkill.getEffect(critlevel).getCriticalMin());

                }

                break;


            case 231:

            case 232:
                /* 7159 */
                critSkill = SkillFactory.getSkill(2310010);
                /* 7160 */
                critlevel = player.getTotalSkillLevel(critSkill);
                /* 7161 */
                if (critlevel > 0) {
                    /* 7162 */
                    this.passive_sharpeye_rate = (short) (this.passive_sharpeye_rate + (short) critSkill.getEffect(critlevel).getCritical());
                    /* 7163 */
                    this.passive_sharpeye_min_percent = (short) (this.passive_sharpeye_min_percent + critSkill.getEffect(critlevel).getCriticalMin());

                }

                break;






            case 530:

            case 531:

            case 532:
                /* 7174 */
                critSkill = SkillFactory.getSkill(5300004);
                /* 7175 */
                critlevel = player.getTotalSkillLevel(critSkill);
                /* 7176 */
                if (critlevel > 0) {
                    /* 7177 */
                    this.passive_sharpeye_rate = (short) (this.passive_sharpeye_rate + (short) critSkill.getEffect(critlevel).getCritical());
                    /* 7178 */
                    this.passive_sharpeye_min_percent = (short) (this.passive_sharpeye_min_percent + critSkill.getEffect(critlevel).getCriticalMin());

                }

                break;


            case 300:

            case 310:

            case 311:

            case 312:

            case 320:

            case 321:

            case 322:
                /* 7189 */
                critSkill = SkillFactory.getSkill(3000001);
                /* 7190 */
                critlevel = player.getTotalSkillLevel(critSkill);
                /* 7191 */
                if (critlevel > 0) {
                    /* 7192 */
                    this.passive_sharpeye_rate = (short) (this.passive_sharpeye_rate + (short) critSkill.getEffect(critlevel).getProp());
                    /* 7193 */
                    this.passive_sharpeye_min_percent = (short) (this.passive_sharpeye_min_percent + critSkill.getEffect(critlevel).getCriticalMin());

                }

                break;


            case 2214:

            case 2217:
                /* 7199 */
                critSkill = SkillFactory.getSkill(22140018);
                /* 7200 */
                critlevel = player.getTotalSkillLevel(critSkill);
                /* 7201 */
                if (critlevel > 0) {
                    /* 7202 */
                    this.passive_sharpeye_rate = (short) (this.passive_sharpeye_rate + (short) critSkill.getEffect(critlevel).getProp());
                    /* 7203 */
                    this.passive_sharpeye_min_percent = (short) (this.passive_sharpeye_min_percent + critSkill.getEffect(critlevel).getCriticalMin());

                }

                break;







            case 2003:

            case 2410:

            case 2411:

            case 2412:
                /* 7216 */
                critSkill = SkillFactory.getSkill(24110007);
                /* 7217 */
                critlevel = player.getTotalSkillLevel(critSkill);
                /* 7218 */
                if (critlevel > 0) {
                    /* 7219 */
                    this.passive_sharpeye_rate = (short) (this.passive_sharpeye_rate + (short) critSkill.getEffect(critlevel).getCritical());

                }
                /* 7221 */
                critSkill = SkillFactory.getSkill(20030204);
                /* 7222 */
                critlevel = player.getTotalSkillLevel(critSkill);
                /* 7223 */
                if (critlevel > 0) {
                    /* 7224 */
                    this.passive_sharpeye_rate = (short) (this.passive_sharpeye_rate + (short) critSkill.getEffect(critlevel).getCritical());

                }

                break;


            case 3101:

            case 3120:

            case 3121:

            case 3122:
                /* 7232 */
                critSkill = SkillFactory.getSkill(31010003);
                /* 7233 */
                critlevel = player.getTotalSkillLevel(critSkill);
                /* 7234 */
                if (critlevel > 0) {
                    /* 7235 */
                    this.passive_sharpeye_rate = (short) (this.passive_sharpeye_rate + (short) critSkill.getEffect(critlevel).getCritical());

                }

                break;


            case 500:

            case 510:

            case 511:

            case 512:

            case 520:

            case 521:

            case 522:
                /* 7246 */
                critSkill = SkillFactory.getSkill(5000007);
                /* 7247 */
                critlevel = player.getTotalSkillLevel(critSkill);
                /* 7248 */
                if (critlevel > 0 && critSkill != null) {
                    /* 7249 */
                    this.passive_sharpeye_rate = (short) (this.passive_sharpeye_rate + (short) critSkill.getEffect(critlevel).getCritical());
                    /* 7250 */
                    this.passive_sharpeye_min_percent = (short) (this.passive_sharpeye_min_percent + critSkill.getEffect(critlevel).getCriticalMin());

                }
                /* 7252 */
                if (player.getJob() == 511 || player.getJob() == 512) {
                    /* 7253 */
                    critSkill = SkillFactory.getSkill(5110011);
                    /* 7254 */
                    critlevel = player.getTotalSkillLevel(critSkill);
                    /* 7255 */
                    if (critlevel > 0 && critSkill != null) {
                        /* 7256 */
                        this.passive_sharpeye_rate = (short) (this.passive_sharpeye_rate + (short) critSkill.getEffect(critlevel).getCritical());
                        /* 7257 */
                        this.passive_sharpeye_max_percent = (short) (this.passive_sharpeye_max_percent + critSkill.getEffect(critlevel).getCriticalMax());
                        /* 7258 */
                        this.percent_boss_damage_rate += critSkill.getEffect(critlevel).getProp();

                    }
                    /* 7260 */
                    critSkill = SkillFactory.getSkill(5110000);
                    /* 7261 */
                    critlevel = player.getTotalSkillLevel(critSkill);
                    /* 7262 */
                    if (critlevel > 0 && critSkill != null) {
                        /* 7263 */
                        this.passive_sharpeye_rate = (short) (this.passive_sharpeye_rate + (short) critSkill.getEffect(critlevel).getProp());
                        /* 7264 */
                        this.passive_sharpeye_min_percent = (short) (this.passive_sharpeye_min_percent + critSkill.getEffect(critlevel).getCriticalMin());

                    }

                }
                /* 7267 */
                if (player.getJob() == 521 || player.getJob() == 522) {
                    /* 7268 */
                    critSkill = SkillFactory.getSkill(5210013);
                    /* 7269 */
                    critlevel = player.getTotalSkillLevel(critSkill);
                    /* 7270 */
                    if (critlevel > 0 && critSkill != null) {
                        /* 7271 */
                        this.passive_sharpeye_rate = (short) (this.passive_sharpeye_rate + (short) critSkill.getEffect(critlevel).getCritical());
                        /* 7272 */
                        this.percent_ignore_mob_def_rate += critSkill.getEffect(critlevel).getIgnoreMob();

                    }

                }

                break;

        }

    }




    public short passive_sharpeye_rate() {
        /* 7281 */
        return this.passive_sharpeye_rate;

    }



    public short passive_sharpeye_min_percent() {
        /* 7285 */
        return this.passive_sharpeye_min_percent;

    }



    public short passive_sharpeye_percent() {
        /* 7289 */
        return this.passive_sharpeye_max_percent;

    }



    public byte passive_mastery() {
        /* 7293 */
        return this.passive_mastery;

    }










    public double calculateMaxProjDamage(int projectileWatk, MapleCharacter chra) {
        /* 7304 */
        if (projectileWatk < 0) {
            /* 7305 */
            return 0.0D;

        }
        /* 7307 */
        Item weapon_item = chra.getInventory(MapleInventoryType.EQUIPPED).getItem((short) -11);
        /* 7308 */
        MapleWeaponType weapon = (weapon_item == null) ? MapleWeaponType.没有武器 : ItemConstants.getWeaponType(weapon_item.getItemId());
        int mainstat = 0;
        int secondarystat = 0;

        /* 7310 */
        switch (weapon)
             {
            case 弓:

            case 弩:

            case 短枪:
                /* 7314 */
                mainstat = this.localdex;
                /* 7315 */
                secondarystat = this.localstr;










                /* 7326 */
                break;
            case 拳套:
                mainstat = this.localluk;
                secondarystat = this.localdex;
                break;
            default:
                mainstat = 0;
                secondarystat = 0;
                break;
        }

        float maxProjDamage = weapon.getMaxDamageMultiplier() * (4 * mainstat + secondarystat) * projectileWatk / 100.0F;
        maxProjDamage = (float) (maxProjDamage + maxProjDamage * this.percent_damage / 100.0D);
        return maxProjDamage;

    }




    public void calculateMaxBaseDamage(int watk, int lv2damX, int pvpDamage, MapleCharacter chra) {
        /* 7333 */
        if (watk <= 0) {
            /* 7334 */
            this.localmaxbasedamage = 1.0F;
            /* 7335 */
            this.localmaxbasepvpdamage = 1.0F;

        } else {
            /* 7337 */
            int mainstat, secondarystat, mainstatpvp, secondarystatpvp;
            Item weapon_item = chra.getInventory(MapleInventoryType.EQUIPPED).getItem((short) -11);
            /* 7338 */
            Item weapon_item2 = chra.getInventory(MapleInventoryType.EQUIPPED).getItem((short) -10);
            /* 7339 */
            int job = chra.getJob();
            /* 7340 */
            MapleWeaponType weapon = (weapon_item == null) ? MapleWeaponType.没有武器 : ItemConstants.getWeaponType(weapon_item.getItemId());
            /* 7341 */
            MapleWeaponType weapon2 = (weapon_item2 == null) ? MapleWeaponType.没有武器 : ItemConstants.getWeaponType(weapon_item2.getItemId());
            /* 7342 */
            int thirdstat = 0;
            /* 7343 */
            boolean mage = ((job >= 200 && job <= 232) || (job >= 1200 && job <= 1212) || JobConstants.is龙神(job) || (job >= 2700 && job <= 2712) || (job >= 3200 && job <= 3212) || (job >= 11200 && job <= 11212));
            /* 7344 */
            switch (weapon) {

                case 弓:

                case 弩:

                case 短枪:

                case 双弩枪:

                case 灵魂手铳:
                    /* 7350 */
                    mainstat = this.localdex;
                    /* 7351 */
                    secondarystat = this.localstr;
                    /* 7352 */
                    mainstatpvp = this.dex;
                    /* 7353 */
                    secondarystatpvp = this.str;

                    break;

                case 双刀副手:

                case 短刀:
                    /* 7357 */
                    mainstat = this.localluk;
                    /* 7358 */
                    secondarystat = this.localdex + this.localstr;
                    /* 7359 */
                    mainstatpvp = this.luk;
                    /* 7360 */
                    secondarystatpvp = this.dex + this.str;

                    break;

                case 拳套:

                case 手杖:
                    /* 7364 */
                    mainstat = this.localluk;
                    /* 7365 */
                    secondarystat = this.localdex;
                    /* 7366 */
                    mainstatpvp = this.luk;
                    /* 7367 */
                    secondarystatpvp = this.dex;

                    break;

                case 亡命剑:
                    /* 7370 */
                    mainstat = this.localstr;
                    /* 7371 */
                    secondarystat = this.localmaxhp;
                    /* 7372 */
                    mainstatpvp = this.localstr;
                    /* 7373 */
                    secondarystatpvp = this.localmaxhp;

                    break;

                case 能量剑:
                    /* 7376 */
                    mainstat = this.localstr;
                    /* 7377 */
                    secondarystat = this.localluk;
                    /* 7378 */
                    thirdstat = this.localdex;
                    /* 7379 */
                    mainstatpvp = this.str;
                    /* 7380 */
                    secondarystatpvp = this.luk;

                    break;


                default:
                    /* 7384 */
                    if (mage) {
                        /* 7385 */
                        mainstat = this.localint_;
                        /* 7386 */
                        secondarystat = this.localluk;
                        /* 7387 */
                        mainstatpvp = this.int_;
                        /* 7388 */
                        secondarystatpvp = this.luk;
                        break;

                    }
                    /* 7390 */
                    mainstat = this.localstr;
                    /* 7391 */
                    secondarystat = this.localdex;
                    /* 7392 */
                    mainstatpvp = this.str;
                    /* 7393 */
                    secondarystatpvp = this.dex;

                    break;

            }

            /* 7397 */
            if (JobConstants.is新手职业(job)) {
                /* 7398 */
                mainstat = this.localstr;
                /* 7399 */
                secondarystat = this.localdex;
                /* 7400 */
                mainstatpvp = this.str;
                /* 7401 */
                secondarystatpvp = this.dex;

            }
            /* 7403 */
            float weaponDamageMultiplier = weapon.getMaxDamageMultiplier();
            /* 7404 */
            this.localmaxbasepvpdamage = weaponDamageMultiplier * (4 * mainstatpvp + secondarystatpvp) * (100.0F + pvpDamage / 100.0F) + lv2damX;
            /* 7405 */
            this.localmaxbasepvpdamageL = weaponDamageMultiplier * (4 * mainstat + secondarystat) * (100.0F + pvpDamage / 100.0F) + lv2damX;
            /* 7406 */
            if (weapon2 != MapleWeaponType.没有武器 && weapon_item != null && weapon_item2 != null && JobConstants.is恶魔复仇者(job)) {

                /* 7408 */
                Equip we2 = (Equip) weapon_item2;
                /* 7409 */
                int watk2 = mage ? we2.getMatk() : we2.getWatk();
                /* 7410 */
                this.localmaxbasedamage = weaponDamageMultiplier * (4 * mainstat + secondarystat) * (watk - watk2) / 100.0F + lv2damX;
                /* 7411 */
                if (watk2 > 0) {
                    /* 7412 */
                    this.localmaxbasedamage += weapon2.getMaxDamageMultiplier() * (4 * mainstat + secondarystat) * watk2 / 100.0F;

                }
                /* 7414 */
            } else if (JobConstants.is恶魔复仇者(job)) {
                /* 7415 */
                this.localmaxbasedamage = (weaponDamageMultiplier * mainstat + secondarystat * 0.15888888F) * watk / 100.0F + lv2damX;
                /* 7416 */
            } else if (JobConstants.is尖兵(job)) {
                /* 7417 */
                this.localmaxbasedamage = weaponDamageMultiplier * (4 * (mainstat + secondarystat + thirdstat)) * watk / 100.0F + lv2damX;

            } else {
                /* 7419 */
                if (job == 110 || job == 111 || job == 112) {
                    /* 7420 */
                    weaponDamageMultiplier = (float) (weaponDamageMultiplier + 0.1D);

                }
                /* 7422 */
                this.localmaxbasedamage = weaponDamageMultiplier * (4 * mainstat + secondarystat) * watk / 100.0F + lv2damX;

            }
            /* 7424 */
            this.localmaxbasedamage = (float) (this.localmaxbasedamage + this.localmaxbasedamage * this.percent_damage / 100.0D);

        }

    }



    public float getHealHP() {
        /* 7429 */
        return this.shouldHealHP;

    }



    public float getHealMP() {
        /* 7433 */
        return this.shouldHealMP;

    }






    public void relocHeal(MapleCharacter chra) {
        /* 7440 */
        int playerjob = chra.getJob();

        /* 7442 */
        this.shouldHealHP = (10 + this.recoverHP);
        /* 7443 */
        this.shouldHealMP = JobConstants.isNotMpJob(chra.getJob()) ? 0.0F : (3 + this.mpRestore + this.recoverMP + this.localint_ / 10);
        /* 7444 */
        this.mpRecoverTime = 0;
        /* 7445 */
        this.hpRecoverTime = 0;
        /* 7446 */
        MapleItemInformationProvider ii = MapleItemInformationProvider.getInstance();
        /* 7447 */
        if (playerjob == 111 || playerjob == 112) {
            /* 7448 */
            Skill skill = SkillFactory.getSkill(1110000);
            /* 7449 */
            int lvl = chra.getSkillLevel(skill);
            /* 7450 */
            if (lvl > 0 && skill != null) {
                /* 7451 */
                MapleStatEffect effect = skill.getEffect(lvl);
                /* 7452 */
                this.shouldHealHP += effect.getHp();
                /* 7453 */
                this.hpRecoverTime = 4000;
                /* 7454 */
                this.shouldHealMP += effect.getMp();
                /* 7455 */
                this.mpRecoverTime = 4000;

            }
            /* 7457 */
        } else if (playerjob == 1111 || playerjob == 1112) {
            /* 7458 */
            Skill skill = SkillFactory.getSkill(11110025);
            /* 7459 */
            int lvl = chra.getSkillLevel(skill);
            /* 7460 */
            if (lvl > 0 && skill != null) {
                /* 7461 */
                MapleStatEffect effect = skill.getEffect(lvl);
                /* 7462 */
                this.shouldHealHP += (effect.getY() * this.localmaxhp) / 100.0F;
                /* 7463 */
                this.hpRecoverTime = effect.getW() * 1000;

            }
            /* 7465 */
        } else if (playerjob == 510 || playerjob == 511 || playerjob == 512) {
            /* 7466 */
            Skill skill = SkillFactory.getSkill(5100013);
            /* 7467 */
            int lvl = chra.getSkillLevel(skill);
            /* 7468 */
            if (lvl > 0 && skill != null) {
                /* 7469 */
                MapleStatEffect effect = skill.getEffect(lvl);
                /* 7470 */
                this.shouldHealHP += (effect.getX() * this.localmaxhp) / 100.0F;
                /* 7471 */
                this.hpRecoverTime = effect.getY();
                /* 7472 */
                this.shouldHealMP += (effect.getX() * this.localmaxmp) / 100.0F;
                /* 7473 */
                this.mpRecoverTime = effect.getY();

            }
            /* 7475 */
        } else if (playerjob == 570 || playerjob == 571 || playerjob == 572) {
            /* 7476 */
            Skill skill = SkillFactory.getSkill(5700005);
            /* 7477 */
            int lvl = chra.getSkillLevel(skill);
            /* 7478 */
            if (lvl > 0 && skill != null) {
                /* 7479 */
                MapleStatEffect effect = skill.getEffect(lvl);
                /* 7480 */
                this.shouldHealHP += (effect.getX() * this.localmaxhp) / 100.0F;
                /* 7481 */
                this.hpRecoverTime = effect.getY() * 1000;
                /* 7482 */
                this.shouldHealMP += (effect.getX() * this.localmaxmp) / 100.0F;
                /* 7483 */
                this.mpRecoverTime = effect.getY() * 1000;

            }
            /* 7485 */
        } else if (JobConstants.is双弩精灵(playerjob)) {
            /* 7486 */
            Skill skill = SkillFactory.getSkill(20020109);
            /* 7487 */
            int lvl = chra.getSkillLevel(skill);
            /* 7488 */
            if (lvl > 0 && skill != null) {
                /* 7489 */
                MapleStatEffect effect = skill.getEffect(lvl);
                /* 7490 */
                this.shouldHealHP += (effect.getX() * this.localmaxhp) / 100.0F;
                /* 7491 */
                this.hpRecoverTime = 4000;
                /* 7492 */
                this.shouldHealMP += (effect.getX() * this.localmaxmp) / 100.0F;
                /* 7493 */
                this.mpRecoverTime = 4000;

            }
            /* 7495 */
        } else if (playerjob == 3111 || playerjob == 3112) {
            /* 7496 */
            Skill skill = SkillFactory.getSkill(31110009);
            /* 7497 */
            int lvl = chra.getSkillLevel(skill);
            /* 7498 */
            if (lvl > 0 && skill != null) {
                /* 7499 */
                this.shouldHealMP += skill.getEffect(lvl).getY();
                /* 7500 */
                this.mpRecoverTime = 4000;

            }
            /* 7502 */
        } else if (playerjob == 5111 || playerjob == 5112) {
            /* 7503 */
            Skill skill = SkillFactory.getSkill(51110000);
            /* 7504 */
            int lvl = chra.getSkillLevel(skill);
            /* 7505 */
            if (lvl > 0 && skill != null) {
                /* 7506 */
                MapleStatEffect effect = skill.getEffect(lvl);
                /* 7507 */
                this.shouldHealHP += effect.getHp();
                /* 7508 */
                this.hpRecoverTime = 4000;
                /* 7509 */
                this.shouldHealMP += effect.getMp();
                /* 7510 */
                this.mpRecoverTime = 4000;

            }
            /* 7512 */
        } else if (playerjob == 6111 || playerjob == 6112) {
            /* 7513 */
            Skill skill = SkillFactory.getSkill(61110006);
            /* 7514 */
            int lvl = chra.getSkillLevel(skill);
            /* 7515 */
            if (lvl > 0 && skill != null) {
                /* 7516 */
                MapleStatEffect effect = skill.getEffect(lvl);
                /* 7517 */
                this.shouldHealHP += (effect.getX() * this.localmaxhp) / 100.0F;
                /* 7518 */
                this.hpRecoverTime = effect.getY();
                /* 7519 */
                this.shouldHealMP += (effect.getX() * this.localmaxmp) / 100.0F;
                /* 7520 */
                this.mpRecoverTime = effect.getY();

            }

        }
        /* 7523 */
        if (chra.getChair() != 0) {
            /* 7524 */
            Pair<Integer, Integer> ret = ii.getChairRecovery(chra.getChair());
            /* 7525 */
            if (ret != null) {
                /* 7526 */
                this.shouldHealHP += ((Integer) ret.getLeft()).intValue();
                /* 7527 */
                if (this.hpRecoverTime == 0) {
                    /* 7528 */
                    this.hpRecoverTime = 4000;

                }
                /* 7530 */
                this.shouldHealMP += JobConstants.isNotMpJob(chra.getJob()) ? 0.0F : ((Integer) ret.getRight()).intValue();
                /* 7531 */
                if (this.mpRecoverTime == 0 && !JobConstants.isNotMpJob(chra.getJob())) {
                    /* 7532 */
                    this.hpRecoverTime = 4000;

                }

            }
            /* 7535 */
        } else if (chra.getMap() != null) {
            /* 7536 */
            float recvRate = chra.getMap().getRecoveryRate();
            /* 7537 */
            if (recvRate > 0.0F) {
                /* 7538 */
                this.shouldHealHP *= recvRate;
                /* 7539 */
                this.shouldHealMP *= recvRate;

            }

        }

    }



    public void connectData(MaplePacketLittleEndianWriter mplew) {
        /* 7545 */
        mplew.writeShort(this.str);
        /* 7546 */
        mplew.writeShort(this.dex);
        /* 7547 */
        mplew.writeShort(this.int_);
        /* 7548 */
        mplew.writeShort(this.luk);

        /* 7550 */
        mplew.writeInt(this.hp);
        /* 7551 */
        mplew.writeInt(this.maxhp);
        /* 7552 */
        mplew.writeInt(this.mp);
        /* 7553 */
        mplew.writeInt(this.maxmp);

    }



    public void zeroData(MaplePacketLittleEndianWriter mplew, MapleCharacter chr) {
        /* 7557 */
        mplew.write(255);
        /* 7558 */
        mplew.write(255);
        /* 7559 */
        mplew.write(chr.isZeroSecondLook() ? 1 : 0);
        /* 7560 */
        mplew.writeInt(this.maxhp);
        /* 7561 */
        mplew.writeInt(this.maxmp);
        /* 7562 */
        mplew.write(0);
        /* 7563 */
        mplew.writeInt(chr.getSecondHair());
        /* 7564 */
        mplew.writeInt(chr.getSecondFace());
        /* 7565 */
        mplew.writeInt(this.maxhp);
        /* 7566 */
        mplew.writeInt(this.maxmp);
        /* 7567 */
        mplew.writeInt(0);
        /* 7568 */
        mplew.writeInt(-1);
        /* 7569 */
        mplew.writeZeroBytes(8);

    }



    public int getSkillIncrement(int skillID) {
        /* 7573 */
        if (this.skillsIncrement.containsKey(Integer.valueOf(skillID))) {
            /* 7574 */
            return ((Integer) this.skillsIncrement.get(Integer.valueOf(skillID))).intValue();

        }
        /* 7576 */
        return 0;

    }



    public int getElementBoost(Element key) {
        /* 7580 */
        if (this.elemBoosts.containsKey(key)) {
            /* 7581 */
            return ((Integer) this.elemBoosts.get(key)).intValue();

        }
        /* 7583 */
        return 0;

    }



    public int getDamageIncrease(int key) {
        /* 7587 */
        if (this.damageIncrease.containsKey(Integer.valueOf(key))) {
            /* 7588 */
            return ((Integer) this.damageIncrease.get(Integer.valueOf(key))).intValue();

        }
        /* 7590 */
        return 0;

    }



    public int getAccuracy() {
        /* 7594 */
        return this.accuracy;

    }



    public void heal_noUpdate(MapleCharacter chra) {
        /* 7598 */
        setHp(getCurrentMaxHp(), chra);
        /* 7599 */
        setMp(getCurrentMaxMp(chra.getJob()), chra);

    }



    public void heal(MapleCharacter chra) {
        /* 7603 */
        heal_noUpdate(chra);
        /* 7604 */
        chra.updateSingleStat(MapleStat.HP, getCurrentMaxHp());
        /* 7605 */
        chra.updateSingleStat(MapleStat.MP, getCurrentMaxMp(chra.getJob()));

    }



    public Pair<Integer, Integer> handleEquipAdditions(MapleItemInformationProvider ii, MapleCharacter chra, boolean first_login, Map<Integer, SkillEntry> sData, int itemId) {
        /* 7609 */
        Map<String, ?> additions = (Map<String, ?>) ii.getEquipAdditions(itemId);
        /* 7610 */
        if (additions == null) {
            /* 7611 */
            return null;

        }
        /* 7613 */
        int localmaxhp_x = 0, localmaxmp_x = 0;
        /* 7614 */
        int skillid = 0, skilllevel = 0;
        /* 7615 */
        for (Map.Entry<String, ?> add : additions.entrySet()) {

            String craft;
            Integer damage;
            boolean canJob;
            String elemVol;
            boolean canLevel;
            int prob;
            int i;
            /* 7617 */
            switch ((String) add.getKey()) {

                case "elemboost":
                    /* 7619 */
                    craft = null;
                    elemVol = null;

                    try {
                        /* 7621 */
                        craft = (String) ((Map) ((Map) add.getValue()).get("con")).get("craft");
                        /* 7622 */
                        elemVol = (String) ((Map) add.getValue()).get("elemVol");
                        /* 7623 */
                    } catch (Exception e) {
                        /* 7624 */
                        e.printStackTrace();

                    }
                    /* 7626 */
                    if (elemVol != null && (craft == null || chra.getTrait(MapleTraitType.craft).getLocalTotalExp() >= Integer.parseInt(craft))) {
                        /* 7627 */
                        int value = Integer.parseInt(elemVol.substring(1, elemVol.length()));
                        /* 7628 */
                        Element key = Element.getFromChar(elemVol.charAt(0));
                        /* 7629 */
                        if (this.elemBoosts.get(key) != null) {
                            /* 7630 */
                            value += ((Integer) this.elemBoosts.get(key)).intValue();

                        }
                        /* 7632 */
                        this.elemBoosts.put(key, Integer.valueOf(value));

                    }



                case "mobcategory":
                    /* 7637 */
                    damage = (Integer) ((Map) add.getValue()).get("damage");
                    /* 7638 */
                    if (damage != null) {
                        /* 7639 */
                        this.percent_damage_rate += damage.intValue();
                        /* 7640 */
                        this.percent_boss_damage_rate += damage.intValue();

                    }



                case "critical":
                    /* 7645 */
                    canJob = true;
                    /* 7646 */
                    canLevel = true;
                    /* 7647 */
                    prob = 0;
                    i = 0;
                    /* 7648 */
                    if (add.getValue() instanceof Map) {
                        /* 7649 */
                        for (Map.Entry<String, ?> entry : (Iterable<Map.Entry<String, ?>>) ((Map) add.getValue()).entrySet()) {
                            /* 7650 */
                            Map<?, ?> subentry;
                            switch ((String) entry.getKey()) {

                                case "con":
                                    /* 7652 */
                                    subentry = (Map<?, ?>) entry.getValue();
                                    /* 7653 */
                                    if (subentry.containsKey("job")) {
                                        /* 7654 */
                                        canJob = subentry.values().contains(Short.valueOf(chra.getJob()));
                                        continue;
                                        /* 7655 */
                                    }
                                    if (subentry.containsKey("lv")) {
                                        /* 7656 */
                                        canLevel = (chra.getLevel() >= ((Integer) subentry.get("lv")).intValue());

                                    }


                                case "prob":
                                    /* 7660 */
                                    prob = ((Integer) entry.getValue()).intValue();


                                case "damage":

                                    try {
                                        /* 7664 */
                                        i = Integer.parseInt(entry.getValue().toString());
                                        /* 7665 */
                                    } catch (ClassCastException e) {
                                        /* 7666 */
                                        log.error("读取damage错误, Itemid: " + itemId, e);

                                    }

                            }

                        }

                    }
                    /* 7671 */
                    if (canJob && canLevel) {
                        /* 7672 */
                        this.passive_sharpeye_rate = (short) (this.passive_sharpeye_rate + prob);
                        /* 7673 */
                        this.passive_sharpeye_min_percent = (short) (this.passive_sharpeye_min_percent + i);
                        /* 7674 */
                        this.passive_sharpeye_max_percent = (short) (this.passive_sharpeye_max_percent + i);

                    }

            }































































































































        }
        /* 7804 */
        if (skillid != 0 && skilllevel != 0) {
            /* 7805 */
            sData.put(Integer.valueOf(skillid), new SkillEntry((byte) skilllevel, (byte) 0, -1L));

        }
        /* 7807 */
        return new Pair(Integer.valueOf(localmaxhp_x), Integer.valueOf(localmaxmp_x));

    }







    public Pair<Integer, Integer> handleEquipSetStats(MapleItemInformationProvider ii, MapleCharacter chra, boolean first_login, Map<Integer, SkillEntry> sData, int setId, int setCount) {
        /* 7815 */
        StructSetItem setItem = ii.getSetItem(setId);
        /* 7816 */
        if (setItem == null) {
            /* 7817 */
            return null;

        }

        /* 7820 */
        Map<Integer, StructSetItemStat> setItemStats = setItem.getSetItemStats();

        /* 7822 */
        int localmaxhp_x = 0, localmaxmp_x = 0;

        /* 7824 */
        for (Map.Entry<Integer, StructSetItemStat> ent : setItemStats.entrySet()) {

            /* 7826 */
            if (((Integer) ent.getKey()).intValue() == setCount) {

                /* 7828 */
                StructSetItemStat setItemStat = ent.getValue();
                /* 7829 */
                this.localstr += setItemStat.incSTR + setItemStat.incAllStat;
                /* 7830 */
                this.localdex += setItemStat.incDEX + setItemStat.incAllStat;
                /* 7831 */
                this.localint_ += setItemStat.incINT + setItemStat.incAllStat;
                /* 7832 */
                this.localluk += setItemStat.incLUK + setItemStat.incAllStat;
                /* 7833 */
                this.watk += setItemStat.incPAD;
                /* 7834 */
                this.magic += setItemStat.incMAD;
                /* 7835 */
                this.speed += setItemStat.incSpeed;
                /* 7836 */
                this.accuracy += setItemStat.incACC;
                /* 7837 */
                localmaxhp_x += setItemStat.incMHP;
                /* 7838 */
                localmaxmp_x += setItemStat.incMMP;
                /* 7839 */
                this.percent_hp += setItemStat.incMHPr;
                /* 7840 */
                this.percent_mp += setItemStat.incMMPr;
                /* 7841 */
                this.wdef += setItemStat.incPDD;
                /* 7842 */
                this.mdef += setItemStat.incMDD;
                /* 7843 */
                if (setItemStat.option1 > 0 && setItemStat.option1Level > 0) {
                    /* 7844 */
                    StructItemOption soc = ii.getPotentialInfo(setItemStat.option1).get(setItemStat.option1Level);
                    /* 7845 */
                    if (soc != null) {
                        /* 7846 */
                        localmaxhp_x += soc.get("incMHP");
                        /* 7847 */
                        localmaxmp_x += soc.get("incMMP");
                        /* 7848 */
                        handleItemOption(soc, chra, first_login, sData);

                    }

                }
                /* 7851 */
                if (setItemStat.option2 > 0 && setItemStat.option2Level > 0) {
                    /* 7852 */
                    StructItemOption soc = ii.getPotentialInfo(setItemStat.option2).get(setItemStat.option2Level);
                    /* 7853 */
                    if (soc != null) {
                        /* 7854 */
                        localmaxhp_x += soc.get("incMHP");
                        /* 7855 */
                        localmaxmp_x += soc.get("incMMP");
                        /* 7856 */
                        handleItemOption(soc, chra, first_login, sData);

                    }

                }

            }

        }
        /* 7861 */
        return new Pair(Integer.valueOf(localmaxhp_x), Integer.valueOf(localmaxmp_x));

    }





    public void handleItemOption(StructItemOption soc, MapleCharacter chra, boolean first_login, Map<Integer, SkillEntry> sData) {
        /* 7867 */
        this.localstr += soc.get("incSTR");
        /* 7868 */
        this.localdex += soc.get("incDEX");
        /* 7869 */
        this.localint_ += soc.get("incINT");
        /* 7870 */
        this.localluk += soc.get("incLUK");
        /* 7871 */
        if (soc.get("incSTRlv") > 0) {
            /* 7872 */
            this.localstr += chra.getLevel() / 10 * soc.get("incSTRlv");

        }
        /* 7874 */
        if (soc.get("incDEXlv") > 0) {
            /* 7875 */
            this.localdex += chra.getLevel() / 10 * soc.get("incDEXlv");

        }
        /* 7877 */
        if (soc.get("incINTlv") > 0) {
            /* 7878 */
            this.localint_ += chra.getLevel() / 10 * soc.get("incINTlv");

        }
        /* 7880 */
        if (soc.get("incLUKlv") > 0) {
            /* 7881 */
            this.localluk += chra.getLevel() / 10 * soc.get("incLUKlv");

        }
        /* 7883 */
        this.accuracy += soc.get("incACC");

        /* 7885 */
        this.speed += soc.get("incSpeed");
        /* 7886 */
        this.jump += soc.get("incJump");
        /* 7887 */
        this.watk += soc.get("incPAD");
        /* 7888 */
        if (soc.get("incPADlv") > 0) {
            /* 7889 */
            this.watk += chra.getLevel() / 10 * soc.get("incPADlv");

        }
        /* 7891 */
        this.magic += soc.get("incMAD");
        /* 7892 */
        if (soc.get("incMADlv") > 0) {
            /* 7893 */
            this.magic += chra.getLevel() / 10 * soc.get("incMADlv");

        }
        /* 7895 */
        this.wdef += soc.get("incPDD");
        /* 7896 */
        this.mdef += soc.get("incMDD");
        /* 7897 */
        this.percent_str += soc.get("incSTRr");
        /* 7898 */
        this.percent_dex += soc.get("incDEXr");
        /* 7899 */
        this.percent_int += soc.get("incINTr");
        /* 7900 */
        this.percent_luk += soc.get("incLUKr");
        /* 7901 */
        this.percent_hp += soc.get("incMHPr");
        /* 7902 */
        this.percent_mp += soc.get("incMMPr");
        /* 7903 */
        this.percent_acc += soc.get("incACCr");
        /* 7904 */
        this.dodgeChance += soc.get("incEVAr");
        /* 7905 */
        this.percent_atk += soc.get("incPADr");
        /* 7906 */
        this.percent_matk += soc.get("incMADr");
        /* 7907 */
        this.percent_wdef += soc.get("incPDDr");
        /* 7908 */
        this.percent_mdef += soc.get("incMDDr");
        /* 7909 */
        this.passive_sharpeye_rate = (short) (this.passive_sharpeye_rate + soc.get("incCr"));
        /* 7910 */
        this.percent_boss_damage_rate += soc.get("incDAMr");
        /* 7911 */
        if (soc.get("boss") <= 0) {
            /* 7912 */
            this.percent_damage_rate += soc.get("incDAMr");

        }
        /* 7914 */
        this.recoverHP += soc.get("RecoveryHP");
        /* 7915 */
        this.recoverMP += soc.get("RecoveryMP");
        /* 7916 */
        if (soc.get("HP") > 0) {
            /* 7917 */
            this.hpRecover += soc.get("HP");
            /* 7918 */
            this.hpRecoverProp += soc.get("prop");

        }
        /* 7920 */
        if (soc.get("MP") > 0 && !JobConstants.isNotMpJob(chra.getJob())) {
            /* 7921 */
            this.mpRecover += soc.get("MP");
            /* 7922 */
            this.mpRecoverProp += soc.get("prop");

        }
        /* 7924 */
        this.percent_ignore_mob_def_rate += soc.get("ignoreTargetDEF");
        /* 7925 */
        if (soc.get("ignoreDAM") > 0) {
            /* 7926 */
            this.ignoreDAM += soc.get("ignoreDAM");
            /* 7927 */
            this.ignoreDAM_rate += soc.get("prop");

        }
        /* 7929 */
        this.incAllskill += soc.get("incAllskill");
        /* 7930 */
        if (soc.get("ignoreDAMr") > 0) {
            /* 7931 */
            this.ignoreDAMr += soc.get("ignoreDAMr");
            /* 7932 */
            this.ignoreDAMr_rate += soc.get("prop");

        }
        /* 7934 */
        if (soc.get("incMaxDamage") > 0) {
            /* 7935 */
            this.incMaxDamage += soc.get("incMaxDamage");

        }
        /* 7937 */
        this.RecoveryUP += soc.get("RecoveryUP");
        /* 7938 */
        this.passive_sharpeye_min_percent = (short) (this.passive_sharpeye_min_percent + soc.get("incCriticaldamageMin"));
        /* 7939 */
        this.passive_sharpeye_max_percent = (short) (this.passive_sharpeye_max_percent + soc.get("incCriticaldamageMax"));
        /* 7940 */
        this.TER += soc.get("incTerR");
        /* 7941 */
        this.ASR += soc.get("incAsrR");
        /* 7942 */
        if (soc.get("DAMreflect") > 0) {
            /* 7943 */
            this.DAMreflect += soc.get("DAMreflect");
            /* 7944 */
            this.DAMreflect_rate += soc.get("prop");

        }
        /* 7946 */
        this.mpconReduce += soc.get("mpconReduce");
        /* 7947 */
        this.reduceCooltime += soc.get("reduceCooltime");
        /* 7948 */
        this.incMesoProp += soc.get("incMesoProp");
        /* 7949 */
        this.incRewardProp += soc.get("incRewardProp");
        /* 7950 */
        this.BuffUP_Skill += soc.get("bufftimeR");
        /* 7951 */
        if (first_login && soc.get("skillID") > 0) {
            /* 7952 */
            sData.put(Integer.valueOf(getSkillByJob(soc.get("skillID"), chra.getJob())), new SkillEntry(1, (byte) 0, -1L));

        }

    }



    public void recalcPVPRank(MapleCharacter chra) {
        /* 7957 */
        this.pvpRank = 10;
        /* 7958 */
        this.pvpExp = chra.getTotalBattleExp();
        /* 7959 */
        for (int i = 0; i < 10; i++) {
            /* 7960 */
            if (this.pvpExp > GameConstants.getPVPExpNeededForLevel(i + 1)) {
                /* 7961 */
                this.pvpRank--;
                /* 7962 */
                this.pvpExp -= GameConstants.getPVPExpNeededForLevel(i + 1);

            }

        }

    }



    public int getHPPercent() {
        /* 7968 */
        return (int) Math.ceil(this.hp * 100.0D / this.localmaxhp);

    }



    public void init(MapleCharacter chra) {
        /* 7972 */
        recalcLocalStats(chra);

    }



    public short getStr() {
        /* 7976 */
        return this.str;

    }



    public short getDex() {
        /* 7980 */
        return this.dex;

    }



    public short getLuk() {
        /* 7984 */
        return this.luk;

    }



    public short getInt() {
        /* 7988 */
        return this.int_;

    }



    public void setStr(short str, MapleCharacter chra) {
        /* 7992 */
        this.str = str;
        /* 7993 */
        recalcLocalStats(chra);

    }



    public void setDex(short dex, MapleCharacter chra) {
        /* 7997 */
        this.dex = dex;
        /* 7998 */
        recalcLocalStats(chra);

    }



    public void setLuk(short luk, MapleCharacter chra) {
        /* 8002 */
        this.luk = luk;
        /* 8003 */
        recalcLocalStats(chra);

    }



    public void setInt(short int_, MapleCharacter chra) {
        /* 8007 */
        this.int_ = int_;
        /* 8008 */
        recalcLocalStats(chra);

    }



    public int getHealHp() {
        /* 8012 */
        return Math.max(this.localmaxhp - this.hp, 0);

    }



    public int getHealMp(int job) {
        /* 8016 */
        if (JobConstants.isNotMpJob(job)) {
            /* 8017 */
            return 0;

        }
        /* 8019 */
        return Math.max(this.localmaxmp - this.mp, 0);

    }



    public boolean setHp(int newhp, MapleCharacter chra) {
        /* 8023 */
        return setHp(newhp, false, chra);

    }



    public boolean setHp(int newhp, boolean silent, MapleCharacter chra) {
        /* 8027 */
        int oldHp = this.hp;
        /* 8028 */
        int thp = newhp;
        /* 8029 */
        if (thp < 0) {
            /* 8030 */
            thp = 0;

        }
        /* 8032 */
        if (thp > this.localmaxhp) {
            /* 8033 */
            thp = this.localmaxhp;

        }
        /* 8035 */
        this.hp = thp;
        /* 8036 */
        if (chra != null) {
            /* 8037 */
            if (!silent) {
                /* 8038 */
                chra.checkBerserk();
                /* 8039 */
                chra.updatePartyMemberHP();

            }

            /* 8042 */
            if (oldHp > this.hp && !chra.isAlive()) {
                /* 8043 */
                chra.playerDead();

            }

        }
        /* 8046 */
        return (this.hp != oldHp);

    }



    public boolean setMp(int newmp, MapleCharacter chra) {
        /* 8050 */
        int oldMp = this.mp;
        /* 8051 */
        int tmp = newmp;
        /* 8052 */
        if (tmp < 0) {
            /* 8053 */
            tmp = 0;

        }
        /* 8055 */
        if (tmp > this.localmaxmp) {
            /* 8056 */
            tmp = this.localmaxmp;

        }
        /* 8058 */
        this.mp = tmp;
        /* 8059 */
        return (this.mp != oldMp);

    }



    public void setInfo(int maxhp, int maxmp, int hp, int mp) {
        /* 8063 */
        this.maxhp = maxhp;
        /* 8064 */
        this.maxmp = maxmp;
        /* 8065 */
        this.hp = hp;
        /* 8066 */
        this.mp = mp;

    }



    public void setMaxHp(int hp, MapleCharacter chra) {
        /* 8070 */
        this.maxhp = hp;
        /* 8071 */
        recalcLocalStats(chra);

    }



    public void setMaxMp(int mp, MapleCharacter chra) {
        /* 8075 */
        this.maxmp = mp;
        /* 8076 */
        recalcLocalStats(chra);

    }



    public int getHp() {
        /* 8080 */
        return this.hp;

    }



    public int getMaxHp() {
        /* 8084 */
        return this.maxhp;

    }



    public int getMp() {
        /* 8088 */
        return this.mp;

    }



    public int getMaxMp() {
        /* 8092 */
        return this.maxmp;

    }



    public int getTotalDex() {
        /* 8096 */
        return this.localdex;

    }



    public int getTotalInt() {
        /* 8100 */
        return this.localint_;

    }



    public int getTotalStr() {
        /* 8104 */
        return this.localstr;

    }



    public int getTotalLuk() {
        /* 8108 */
        return this.localluk;

    }



    public int getTotalMagic() {
        /* 8112 */
        return this.magic;

    }



    public int getSpeed() {
        /* 8116 */
        return this.speed;

    }



    public int getJump() {
        /* 8120 */
        return this.jump;

    }



    public int getTotalWatk() {
        /* 8124 */
        return this.watk;

    }



    public int getCurrentMaxHp() {
        /* 8128 */
        return this.localmaxhp;

    }



    public int getCurrentMaxMp(int job) {
        /* 8132 */
        if (JobConstants.isNotMpJob(job) && GameConstants.getMPByJob(job) <= 0) {
            /* 8133 */
            return 50;

        }
        /* 8135 */
        return this.localmaxmp;

    }



    public float getCurrentMaxBaseDamage() {
        /* 8139 */
        return this.localmaxbasedamage;

    }



    public float getCurrentMaxBasePVPDamage() {
        /* 8143 */
        return this.localmaxbasepvpdamage;

    }



    public float getCurrentMaxBasePVPDamageL() {
        /* 8147 */
        return this.localmaxbasepvpdamageL;

    }



    public boolean isRangedJob(int job) {
        /* 8151 */
        return (JobConstants.is龙的传人(job) || JobConstants.is双弩精灵(job) || JobConstants.is火炮手(job) || job == 400 || job / 10 == 52 || job / 10 == 59 || job / 100 == 3 || job / 100 == 13 || job / 100 == 14 || job / 100 == 33 || job / 100 == 35 || job / 10 == 41);

    }






    public int getCoolTimeR() {
        /* 8158 */
        if (this.coolTimeR > 5) {
            /* 8159 */
            return 5;

        }
        /* 8161 */
        return this.coolTimeR;

    }



    public int getReduceCooltime() {
        /* 8165 */
        if (this.reduceCooltime > 5) {
            /* 8166 */
            return 5;

        }
        /* 8168 */
        return this.reduceCooltime;

    }






    public long getLimitBreak(MapleCharacter chra) {
        /* 8175 */
        MapleItemInformationProvider ii = MapleItemInformationProvider.getInstance();

        /* 8177 */
        long limitBreak = 999999L;
        /* 8178 */
        Equip weapon = (Equip) chra.getInventory(MapleInventoryType.EQUIPPED).getItem((short) -11);
        /* 8179 */
        if (weapon != null) {
            /* 8180 */
            limitBreak = ii.getLimitBreak(weapon.getItemId()) + weapon.getLimitBreak();

            /* 8182 */
            Equip subweapon = (Equip) chra.getInventory(MapleInventoryType.EQUIPPED).getItem((short) -10);
            /* 8183 */
            if (subweapon != null && ItemConstants.isWeapon(subweapon.getItemId())) {
                /* 8184 */
                long subWeaponLB = ii.getLimitBreak(subweapon.getItemId()) + subweapon.getLimitBreak();
                /* 8185 */
                if (subWeaponLB > limitBreak) {
                    /* 8186 */
                    limitBreak = subWeaponLB;

                }

            }

        }
        /* 8190 */
        return limitBreak;

    }






    public int getAttackCount(int skillId) {
        /* 8197 */
        if (this.add_skill_attackCount.containsKey(Integer.valueOf(skillId))) {
            /* 8198 */
            return ((Integer) this.add_skill_attackCount.get(Integer.valueOf(skillId))).intValue();

        }
        /* 8200 */
        return 0;

    }













    /*
     * 额外增加攻击怪物数量
     */
    public int getMobCount(int skillId) {
        return this.add_skill_targetPlus.containsKey(skillId) ? ((Map)this.add_skill_targetPlus.get(skillId)).values().stream().mapToInt((value) -> {
          return Integer.parseInt((String)value);
        }).sum() : 0;
    }








    public int getReduceCooltimeRate(int skillId) {
        /* 8224 */
        if (this.add_skill_coolTimeR.containsKey(Integer.valueOf(skillId))) {
            /* 8225 */
            return ((Integer) this.add_skill_coolTimeR.get(Integer.valueOf(skillId))).intValue();

        }
        /* 8227 */
        return 0;

    }



    public int getAddSkillProp(int skillId) {
        if (this.add_skill_prop.containsKey(Integer.valueOf(skillId)))
            return this.add_skill_prop.get(Integer.valueOf(skillId));
        return 0;

    }






    public int getIgnoreMobpdpR(int skillId) {
        /* 8241 */
        if (this.add_skill_ignoreMobpdpR.containsKey(Integer.valueOf(skillId))) {
            /* 8242 */
            return ((Integer) this.add_skill_ignoreMobpdpR.get(Integer.valueOf(skillId))).intValue() + this.percent_ignore_mob_def_rate;

        }
        /* 8244 */
        return this.percent_ignore_mob_def_rate;

    }






    public double getDamageRate() {
        /* 8251 */
        return this.percent_damage_rate;

    }






    public int getBossDamageRate() {
        /* 8258 */
        return this.percent_boss_damage_rate;

    }






    public int getBossDamageRate(int skillId) {
        /* 8265 */
        if (this.add_skill_bossDamageRate.containsKey(Integer.valueOf(skillId))) {
            /* 8266 */
            return ((Integer) this.add_skill_bossDamageRate.get(Integer.valueOf(skillId))).intValue() + this.percent_boss_damage_rate;

        }
        /* 8268 */
        return this.percent_boss_damage_rate;

    }






    public int getDuration(int skillId) {
        /* 8275 */
        if (this.add_skill_duration.containsKey(Integer.valueOf(skillId))) {
            /* 8276 */
            return ((Integer) this.add_skill_duration.get(Integer.valueOf(skillId))).intValue();

        }
        /* 8278 */
        return 0;

    }






    public void addDamageIncrease(int skillId, int val) {
        /* 8285 */
        if (skillId < 0 || val <= 0) {

            return;

        }
        /* 8288 */
        if (this.damageIncrease.containsKey(Integer.valueOf(skillId))) {
            /* 8289 */
            int oldval = ((Integer) this.damageIncrease.get(Integer.valueOf(skillId))).intValue();
            /* 8290 */
            this.damageIncrease.put(Integer.valueOf(skillId), Integer.valueOf(oldval + val));

        } else {
            /* 8292 */
            this.damageIncrease.put(Integer.valueOf(skillId), Integer.valueOf(val));

        }

    }


















    /*
     * 增加技能攻击怪物的数量
     */
    public void addTargetPlus(int psdSkillId,int skillId,  int val) {
        if (skillId < 0 || val <= 0){
            return;
        }
        ((Map<Integer, Integer>)this.add_skill_targetPlus.computeIfAbsent(Integer.valueOf(skillId), v -> new HashMap<>())).put(Integer.valueOf(psdSkillId), Integer.valueOf(val));

    }








    public void addAttackCount(int skillId, int val) {
        /* 8322 */
        if (skillId < 0 || val <= 0) {

            return;

        }
        /* 8325 */
        if (this.add_skill_attackCount.containsKey(Integer.valueOf(skillId))) {
            /* 8326 */
            int oldval = ((Integer) this.add_skill_attackCount.get(Integer.valueOf(skillId))).intValue();
            /* 8327 */
            this.add_skill_attackCount.put(Integer.valueOf(skillId), Integer.valueOf(oldval + val));

        } else {
            /* 8329 */
            this.add_skill_attackCount.put(Integer.valueOf(skillId), Integer.valueOf(val));

        }

    }



    public void addDamageRate5th(int skillId, int psdSkillId, int val) {
        /* 8334 */
        if (skillId < 0 || psdSkillId <= 0) {

            return;

        }
        /* 8337 */
        ((Map<Integer, Integer>) this.add_skill_5thDamageRate.computeIfAbsent(Integer.valueOf(skillId), v -> new HashMap<>())).put(Integer.valueOf(psdSkillId), Integer.valueOf(val));

    }






    public void addBossDamageRate(int skillId, int val) {
        /* 8344 */
        if (skillId < 0 || val <= 0) {

            return;

        }
        /* 8347 */
        if (this.add_skill_bossDamageRate.containsKey(Integer.valueOf(skillId))) {
            /* 8348 */
            int oldval = ((Integer) this.add_skill_bossDamageRate.get(Integer.valueOf(skillId))).intValue();
            /* 8349 */
            this.add_skill_bossDamageRate.put(Integer.valueOf(skillId), Integer.valueOf(oldval + val));

        } else {
            /* 8351 */
            this.add_skill_bossDamageRate.put(Integer.valueOf(skillId), Integer.valueOf(val));

        }

    }






    public void addIgnoreMobpdpRate(int skillId, int val) {
        /* 8359 */
        if (skillId < 0 || val <= 0) {

            return;

        }
        /* 8362 */
        if (this.add_skill_ignoreMobpdpR.containsKey(Integer.valueOf(skillId))) {
            /* 8363 */
            int oldval = ((Integer) this.add_skill_ignoreMobpdpR.get(Integer.valueOf(skillId))).intValue();
            /* 8364 */
            this.add_skill_ignoreMobpdpR.put(Integer.valueOf(skillId), Integer.valueOf(oldval + val));

        } else {
            /* 8366 */
            this.add_skill_ignoreMobpdpR.put(Integer.valueOf(skillId), Integer.valueOf(val));

        }

    }






    public void addBuffDuration(int skillId, int val) {
        /* 8374 */
        if (skillId < 0 || val <= 0) {

            return;

        }
        /* 8377 */
        if (this.add_skill_duration.containsKey(Integer.valueOf(skillId))) {
            /* 8378 */
            int oldval = ((Integer) this.add_skill_duration.get(Integer.valueOf(skillId))).intValue();
            /* 8379 */
            this.add_skill_duration.put(Integer.valueOf(skillId), Integer.valueOf(oldval + val));

        } else {
            /* 8381 */
            this.add_skill_duration.put(Integer.valueOf(skillId), Integer.valueOf(val));

        }

    }






    public void addDotTime(int skillId, int val) {
        /* 8389 */
        if (skillId < 0 || val <= 0) {

            return;

        }
        /* 8392 */
        if (this.add_skill_dotTime.containsKey(Integer.valueOf(skillId))) {
            /* 8393 */
            int oldval = ((Integer) this.add_skill_dotTime.get(Integer.valueOf(skillId))).intValue();
            /* 8394 */
            this.add_skill_dotTime.put(Integer.valueOf(skillId), Integer.valueOf(oldval + val));

        } else {
            /* 8396 */
            this.add_skill_dotTime.put(Integer.valueOf(skillId), Integer.valueOf(val));

        }

    }






    public void addCoolTimeReduce(int skillId, int val) {
        /* 8404 */
        if (skillId < 0 || val <= 0) {

            return;

        }
        /* 8407 */
        if (this.add_skill_coolTimeR.containsKey(Integer.valueOf(skillId))) {
            /* 8408 */
            int oldval = ((Integer) this.add_skill_coolTimeR.get(Integer.valueOf(skillId))).intValue();
            /* 8409 */
            this.add_skill_coolTimeR.put(Integer.valueOf(skillId), Integer.valueOf(oldval + val));

        } else {
            /* 8411 */
            this.add_skill_coolTimeR.put(Integer.valueOf(skillId), Integer.valueOf(val));

        }

    }


















    /*
     * 增加技能触发的概率
     */
    public void addSkillProp(int skillId, int psdSkillId, int val) {
        if (skillId < 0 || val <= 0){
            return;
        }
        this.add_skill_prop.put(Integer.valueOf(psdSkillId), Integer.valueOf(val));
    }


    public int getGauge_x() {
        /* 8438 */
        return this.gauge_x;

    }



    public int getEfftype() {
        /* 8442 */
        return this.efftype;

    }



    public int getFinalSkillID() {
        /* 8446 */
        return this.finalSkillID;

    }



    public int getArc() {
        /* 8450 */
        return this.arc;

    }




    public final Pair<Integer, Integer> updateSummondSkillID() {
        /* 8455 */
        Pair<Integer, Integer> ret = new Pair(Integer.valueOf(0), Integer.valueOf(0));
        /* 8456 */
        if (this.firstsummond > 0) {
            /* 8457 */
            ret = new Pair(Integer.valueOf(this.firstsummond), Integer.valueOf(0));
            /* 8458 */
            this.firstsummond = 0;
            /* 8459 */
            this.summondskills.clear();
            /* 8460 */
        } else if (this.firstsummond == 0 && !this.summondskills.isEmpty()) {
            /* 8461 */
            this.firstsummond = ((Integer) this.summondskills.get(0)).intValue();
            /* 8462 */
            ret = new Pair(Integer.valueOf(this.firstsummond), Integer.valueOf(1));

        }
        /* 8464 */
        return ret;

    }

}


/* Location:              C:\PGX\Server.jar!\client\PlayerStats.class
 * Java compiler version: 8 (52.0)
 * JD-Core Version:       1.1.3
 */